The following table lists the uses of each of the above flags and
for which types of nodes they are defined.
addressable_flag:
TREE_ADDRESSABLE in
VAR_DECL, PARM_DECL, RESULT_DECL, FUNCTION_DECL, LABEL_DECL
SSA_NAME
all types
CONSTRUCTOR, IDENTIFIER_NODE
STMT_EXPR
CALL_EXPR_TAILCALL in
CALL_EXPR
CASE_LOW_SEEN in
CASE_LABEL_EXPR
PREDICT_EXPR_OUTCOME in
PREDICT_EXPR
static_flag:
TREE_STATIC in
VAR_DECL, FUNCTION_DECL
CONSTRUCTOR
TREE_NO_TRAMPOLINE in
ADDR_EXPR
BINFO_VIRTUAL_P in
TREE_BINFO
TREE_SYMBOL_REFERENCED in
IDENTIFIER_NODE
CLEANUP_EH_ONLY in
TARGET_EXPR, WITH_CLEANUP_EXPR
TRY_CATCH_IS_CLEANUP in
TRY_CATCH_EXPR
ASM_INPUT_P in
ASM_EXPR
TYPE_REF_CAN_ALIAS_ALL in
POINTER_TYPE, REFERENCE_TYPE
CASE_HIGH_SEEN in
CASE_LABEL_EXPR
ENUM_IS_SCOPED in
ENUMERAL_TYPE
TRANSACTION_EXPR_OUTER in
TRANSACTION_EXPR
public_flag:
TREE_OVERFLOW in
INTEGER_CST, REAL_CST, COMPLEX_CST, VECTOR_CST
TREE_PUBLIC in
VAR_DECL, FUNCTION_DECL
IDENTIFIER_NODE
ASM_VOLATILE_P in
ASM_EXPR
CALL_EXPR_VA_ARG_PACK in
CALL_EXPR
TYPE_CACHED_VALUES_P in
all types
SAVE_EXPR_RESOLVED_P in
SAVE_EXPR
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE in
OMP_CLAUSE_LASTPRIVATE
OMP_CLAUSE_PRIVATE_DEBUG in
OMP_CLAUSE_PRIVATE
OMP_CLAUSE_LINEAR_NO_COPYIN in
OMP_CLAUSE_LINEAR
TRANSACTION_EXPR_RELAXED in
TRANSACTION_EXPR
private_flag:
TREE_PRIVATE in
all decls
CALL_EXPR_RETURN_SLOT_OPT in
CALL_EXPR
OMP_SECTION_LAST in
OMP_SECTION
OMP_PARALLEL_COMBINED in
OMP_PARALLEL
OMP_CLAUSE_PRIVATE_OUTER_REF in
OMP_CLAUSE_PRIVATE
OMP_CLAUSE_LINEAR_NO_COPYOUT in
OMP_CLAUSE_LINEAR
TYPE_REF_IS_RVALUE in
REFERENCE_TYPE
ENUM_IS_OPAQUE in
ENUMERAL_TYPE
protected_flag:
TREE_PROTECTED in
BLOCK
all decls
CALL_FROM_THUNK_P and
CALL_ALLOCA_FOR_VAR_P in
CALL_EXPR
side_effects_flag:
TREE_SIDE_EFFECTS in
all expressions
all decls
all constants
FORCED_LABEL in
LABEL_DECL
volatile_flag:
TREE_THIS_VOLATILE in
all expressions
all decls
TYPE_VOLATILE in
all types
readonly_flag:
TREE_READONLY in
all expressions
all decls
TYPE_READONLY in
all types
constant_flag:
TREE_CONSTANT in
all expressions
all decls
all constants
TYPE_SIZES_GIMPLIFIED in
all types
unsigned_flag:
TYPE_UNSIGNED in
all types
DECL_UNSIGNED in
all decls
asm_written_flag:
TREE_ASM_WRITTEN in
VAR_DECL, FUNCTION_DECL, TYPE_DECL
RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
BLOCK, STRING_CST
SSA_NAME_OCCURS_IN_ABNORMAL_PHI in
SSA_NAME
used_flag:
TREE_USED in
all expressions
all decls
IDENTIFIER_NODE
nothrow_flag:
TREE_NOTHROW in
CALL_EXPR
FUNCTION_DECL
TYPE_ALIGN_OK in
all types
TREE_THIS_NOTRAP in
INDIRECT_REF, MEM_REF, TARGET_MEM_REF, ARRAY_REF, ARRAY_RANGE_REF
SSA_NAME_IN_FREELIST in
SSA_NAME
deprecated_flag:
TREE_DEPRECATED in
all decls
all types
IDENTIFIER_TRANSPARENT_ALIAS in
IDENTIFIER_NODE
visited:
TREE_VISITED in
all trees (used liberally by many passes)
saturating_flag:
TYPE_SATURATING in
all types
VAR_DECL_IS_VIRTUAL_OPERAND in
VAR_DECL
nowarning_flag:
TREE_NO_WARNING in
all expressions
all decls
TYPE_ARTIFICIAL in
all types
default_def_flag:
TYPE_VECTOR_OPAQUE in
VECTOR_TYPE
SSA_NAME_IS_DEFAULT_DEF in
SSA_NAME
DECL_NONLOCAL_FRAME in
VAR_DECL
TYPE_FINAL_P in
RECORD_TYPE, UNION_TYPE and QUAL_UNION_TYPE