Lines Matching refs:NODE

132 /* Nonzero if NODE represents an exceptional code.  */
134 #define EXCEPTIONAL_CLASS_P(NODE)\
135 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_exceptional)
137 /* Nonzero if NODE represents a constant. */
139 #define CONSTANT_CLASS_P(NODE)\
140 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_constant)
142 /* Nonzero if NODE represents a constant, or is a location wrapper
145 #define CONSTANT_CLASS_OR_WRAPPER_P(NODE)\
146 (CONSTANT_CLASS_P (tree_strip_any_location_wrapper (NODE)))
148 /* Nonzero if NODE represents a type. */
150 #define TYPE_P(NODE)\
151 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_type)
153 /* Nonzero if NODE represents a declaration. */
155 #define DECL_P(NODE)\
156 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_declaration)
158 /* True if NODE designates a variable declaration. */
159 #define VAR_P(NODE) \
160 (TREE_CODE (NODE) == VAR_DECL)
167 /* Nonzero if NODE represents a INDIRECT_REF. Keep these checks in
170 #define INDIRECT_REF_P(NODE)\
171 (TREE_CODE (NODE) == INDIRECT_REF)
173 /* Nonzero if NODE represents a reference. */
175 #define REFERENCE_CLASS_P(NODE)\
176 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_reference)
178 /* Nonzero if NODE represents a comparison. */
180 #define COMPARISON_CLASS_P(NODE)\
181 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_comparison)
183 /* Nonzero if NODE represents a unary arithmetic expression. */
185 #define UNARY_CLASS_P(NODE)\
186 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_unary)
188 /* Nonzero if NODE represents a binary arithmetic expression. */
190 #define BINARY_CLASS_P(NODE)\
191 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_binary)
193 /* Nonzero if NODE represents a statement expression. */
195 #define STATEMENT_CLASS_P(NODE)\
196 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_statement)
198 /* Nonzero if NODE represents a function call-like expression with a
201 #define VL_EXP_CLASS_P(NODE)\
202 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_vl_exp)
204 /* Nonzero if NODE represents any other expression. */
206 #define EXPRESSION_CLASS_P(NODE)\
207 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_expression)
209 /* Returns nonzero iff NODE represents a type or declaration. */
211 #define IS_TYPE_OR_DECL_P(NODE)\
212 (TYPE_P (NODE) || DECL_P (NODE))
220 /* Returns nonzero iff NODE is an expression of some kind. */
222 #define EXPR_P(NODE) IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (NODE)))
243 #define TREE_CODE(NODE) ((enum tree_code) (NODE)->base.code)
244 #define TREE_SET_CODE(NODE, VALUE) ((NODE)->base.code = (VALUE))
341 #define TREE_CHAIN(NODE) \
342 (CONTAINS_STRUCT_CHECK (NODE, TS_COMMON)->common.chain)
348 #define TREE_TYPE(NODE) \
349 (CONTAINS_STRUCT_CHECK (NODE, TS_TYPED)->typed.type)
420 #define TREE_CHAIN(NODE) ((NODE)->common.chain)
421 #define TREE_TYPE(NODE) ((NODE)->typed.type)
425 #define TREE_BLOCK(NODE) (tree_block (NODE))
459 #define TREE_HASH(NODE) ((size_t) (NODE) & 0777777)
612 #define COMPLETE_TYPE_P(NODE) (TYPE_SIZE (NODE) != NULL_TREE)
615 #define VOID_TYPE_P(NODE) (TREE_CODE (NODE) == VOID_TYPE)
618 #define COMPLETE_OR_VOID_TYPE_P(NODE) \
619 (COMPLETE_TYPE_P (NODE) || VOID_TYPE_P (NODE))
622 #define COMPLETE_OR_UNBOUND_ARRAY_TYPE_P(NODE) \
623 (COMPLETE_TYPE_P (TREE_CODE (NODE) == ARRAY_TYPE ? TREE_TYPE (NODE) : (NODE)))
625 #define FUNC_OR_METHOD_TYPE_P(NODE) \
626 (TREE_CODE (NODE) == FUNCTION_TYPE || TREE_CODE (NODE) == METHOD_TYPE)
645 #define TREE_ADDRESSABLE(NODE) ((NODE)->base.addressable_flag)
650 #define CALL_EXPR_TAILCALL(NODE) \
651 (CALL_EXPR_CHECK (NODE)->base.addressable_flag)
655 #define CALL_EXPR_MUST_TAIL_CALL(NODE) \
656 (CALL_EXPR_CHECK (NODE)->base.static_flag)
660 #define CASE_LOW_SEEN(NODE) \
661 (CASE_LABEL_EXPR_CHECK (NODE)->base.addressable_flag)
663 #define PREDICT_EXPR_OUTCOME(NODE) \
664 ((enum prediction) (PREDICT_EXPR_CHECK (NODE)->base.addressable_flag))
665 #define SET_PREDICT_EXPR_OUTCOME(NODE, OUTCOME) \
666 (PREDICT_EXPR_CHECK (NODE)->base.addressable_flag = (int) OUTCOME)
667 #define PREDICT_EXPR_PREDICTOR(NODE) \
668 ((enum br_predictor)tree_to_shwi (TREE_OPERAND (PREDICT_EXPR_CHECK (NODE), 0)))
673 #define TREE_STATIC(NODE) ((NODE)->base.static_flag)
676 #define TREE_NO_TRAMPOLINE(NODE) (ADDR_EXPR_CHECK (NODE)->base.static_flag)
681 #define CLEANUP_EH_ONLY(NODE) ((NODE)->base.static_flag)
685 #define TRY_CATCH_IS_CLEANUP(NODE) \
686 (TRY_CATCH_EXPR_CHECK (NODE)->base.static_flag)
690 #define CASE_HIGH_SEEN(NODE) \
691 (CASE_LABEL_EXPR_CHECK (NODE)->base.static_flag)
694 #define ENUM_IS_SCOPED(NODE) (ENUMERAL_TYPE_CHECK (NODE)->base.static_flag)
697 #define ENUM_IS_OPAQUE(NODE) (ENUMERAL_TYPE_CHECK (NODE)->base.private_flag)
704 #define TREE_NO_WARNING(NODE) ((NODE)->base.nowarning_flag)
708 #define TRANSLATION_UNIT_WARN_EMPTY_P(NODE) \
709 (TRANSLATION_UNIT_DECL_CHECK (NODE)->decl_common.decl_flag_0)
712 #define TYPE_EMPTY_P(NODE) (TYPE_CHECK (NODE)->type_common.empty_flag)
715 #define TYPE_ARTIFICIAL(NODE) (TYPE_CHECK (NODE)->base.nowarning_flag)
720 #define TYPE_INDIVISIBLE_P(NODE) (TYPE_CHECK (NODE)->type_common.indivisible_p)
724 #define TREE_SYMBOL_REFERENCED(NODE) \
725 (IDENTIFIER_NODE_CHECK (NODE)->base.static_flag)
729 #define TYPE_REF_CAN_ALIAS_ALL(NODE) \
730 (PTR_OR_REF_CHECK (NODE)->base.static_flag)
735 #define TREE_OVERFLOW(NODE) (CST_CHECK (NODE)->base.public_flag)
747 #define TREE_PUBLIC(NODE) ((NODE)->base.public_flag)
751 #define TYPE_CACHED_VALUES_P(NODE) (TYPE_CHECK (NODE)->base.public_flag)
755 #define SAVE_EXPR_RESOLVED_P(NODE) \
756 (SAVE_EXPR_CHECK (NODE)->base.public_flag)
760 #define CALL_EXPR_VA_ARG_PACK(NODE) \
761 (CALL_EXPR_CHECK (NODE)->base.public_flag)
768 #define TREE_SIDE_EFFECTS(NODE) \
769 (NON_TYPE_CHECK (NODE)->base.side_effects_flag)
774 #define FORCED_LABEL(NODE) (LABEL_DECL_CHECK (NODE)->base.side_effects_flag)
778 #define FALLTHROUGH_LABEL_P(NODE) \
779 (LABEL_DECL_CHECK (NODE)->base.private_flag)
783 #define SWITCH_BREAK_LABEL_P(NODE) \
784 (LABEL_DECL_CHECK (NODE)->base.protected_flag)
799 #define TREE_THIS_VOLATILE(NODE) ((NODE)->base.volatile_flag)
810 #define TREE_THIS_NOTRAP(NODE) \
811 (TREE_CHECK5 (NODE, INDIRECT_REF, MEM_REF, TARGET_MEM_REF, ARRAY_REF, \
818 #define TREE_READONLY(NODE) (NON_TYPE_CHECK (NODE)->base.readonly_flag)
822 #define TREE_CONSTANT(NODE) (NON_TYPE_CHECK (NODE)->base.constant_flag)
824 /* Nonzero if NODE, a type, has had its sizes gimplified. */
825 #define TYPE_SIZES_GIMPLIFIED(NODE) \
826 (TYPE_CHECK (NODE)->base.constant_flag)
829 #define DECL_UNSIGNED(NODE) \
830 (DECL_COMMON_CHECK (NODE)->base.u.bits.unsigned_flag)
833 #define TYPE_UNSIGNED(NODE) (TYPE_CHECK (NODE)->base.u.bits.unsigned_flag)
836 #define TYPE_SIGN(NODE) ((signop) TYPE_UNSIGNED (NODE))
880 #define TREE_ASM_WRITTEN(NODE) ((NODE)->base.asm_written_flag)
887 #define TREE_USED(NODE) ((NODE)->base.used_flag)
893 #define TREE_NOTHROW(NODE) ((NODE)->base.nothrow_flag)
897 #define CALL_EXPR_RETURN_SLOT_OPT(NODE) \
898 (CALL_EXPR_CHECK (NODE)->base.private_flag)
903 #define DECL_BY_REFERENCE(NODE) \
904 (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \
909 #define DECL_READ_P(NODE) \
910 (TREE_CHECK2 (NODE, VAR_DECL, PARM_DECL)->decl_common.decl_read_flag)
914 #define DECL_NONSHAREABLE(NODE) \
915 (TREE_CHECK2 (NODE, VAR_DECL, \
920 #define DECL_HIDDEN_STRING_LENGTH(NODE) \
921 (TREE_CHECK (NODE, PARM_DECL)->decl_common.decl_nonshareable_flag)
925 #define CALL_FROM_THUNK_P(NODE) (CALL_EXPR_CHECK (NODE)->base.protected_flag)
929 #define CALL_ALLOCA_FOR_VAR_P(NODE) \
930 (CALL_EXPR_CHECK (NODE)->base.protected_flag)
933 #define TREE_PRIVATE(NODE) ((NODE)->base.private_flag)
935 #define TREE_PROTECTED(NODE) ((NODE)->base.protected_flag)
937 /* True if reference type NODE is a C++ rvalue reference. */
938 #define TYPE_REF_IS_RVALUE(NODE) \
939 (REFERENCE_TYPE_CHECK (NODE)->base.private_flag)
943 #define TREE_DEPRECATED(NODE) \
944 ((NODE)->base.deprecated_flag)
948 #define IDENTIFIER_ANON_P(NODE) \
949 (IDENTIFIER_NODE_CHECK (NODE)->base.private_flag)
953 #define IDENTIFIER_TRANSPARENT_ALIAS(NODE) \
954 (IDENTIFIER_NODE_CHECK (NODE)->base.deprecated_flag)
959 #define TYPE_REVERSE_STORAGE_ORDER(NODE) \
960 (TREE_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, ARRAY_TYPE)->base.u.bits.saturating_flag)
963 #define TYPE_SATURATING(NODE) \
964 (TREE_NOT_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, ARRAY_TYPE)->base.u.bits.saturating_flag)
977 #define REF_REVERSE_STORAGE_ORDER(NODE) \
978 (TREE_CHECK2 (NODE, BIT_FIELD_REF, MEM_REF)->base.default_def_flag)
982 #define FUNC_ADDR_BY_DESCRIPTOR(NODE) \
983 (TREE_CHECK (NODE, ADDR_EXPR)->base.default_def_flag)
987 #define CALL_EXPR_BY_DESCRIPTOR(NODE) \
988 (TREE_CHECK (NODE, CALL_EXPR)->base.default_def_flag)
991 #define TREE_LANG_FLAG_0(NODE) \
992 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_0)
993 #define TREE_LANG_FLAG_1(NODE) \
994 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_1)
995 #define TREE_LANG_FLAG_2(NODE) \
996 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_2)
997 #define TREE_LANG_FLAG_3(NODE) \
998 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_3)
999 #define TREE_LANG_FLAG_4(NODE) \
1000 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_4)
1001 #define TREE_LANG_FLAG_5(NODE) \
1002 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_5)
1003 #define TREE_LANG_FLAG_6(NODE) \
1004 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_6)
1008 #define TREE_INT_CST_NUNITS(NODE) \
1009 (INTEGER_CST_CHECK (NODE)->base.u.int_length.unextended)
1010 #define TREE_INT_CST_EXT_NUNITS(NODE) \
1011 (INTEGER_CST_CHECK (NODE)->base.u.int_length.extended)
1012 #define TREE_INT_CST_OFFSET_NUNITS(NODE) \
1013 (INTEGER_CST_CHECK (NODE)->base.u.int_length.offset)
1014 #define TREE_INT_CST_ELT(NODE, I) TREE_INT_CST_ELT_CHECK (NODE, I)
1015 #define TREE_INT_CST_LOW(NODE) \
1016 ((unsigned HOST_WIDE_INT) TREE_INT_CST_ELT (NODE, 0))
1018 /* Return true if NODE is a POLY_INT_CST. This is only ever true on
1020 #define POLY_INT_CST_P(NODE) \
1021 (NUM_POLY_INT_COEFFS > 1 && TREE_CODE (NODE) == POLY_INT_CST)
1024 #define POLY_INT_CST_COEFF(NODE, I) \
1025 (POLY_INT_CST_CHECK (NODE)->poly_int_cst.coeffs[I])
1027 #define TREE_REAL_CST_PTR(NODE) (REAL_CST_CHECK (NODE)->real_cst.real_cst_ptr)
1028 #define TREE_REAL_CST(NODE) (*TREE_REAL_CST_PTR (NODE))
1030 #define TREE_FIXED_CST_PTR(NODE) \
1031 (FIXED_CST_CHECK (NODE)->fixed_cst.fixed_cst_ptr)
1032 #define TREE_FIXED_CST(NODE) (*TREE_FIXED_CST_PTR (NODE))
1036 #define TREE_STRING_LENGTH(NODE) (STRING_CST_CHECK (NODE)->string.length)
1037 #define TREE_STRING_POINTER(NODE) \
1038 ((const char *)(STRING_CST_CHECK (NODE)->string.str))
1041 #define TREE_REALPART(NODE) (COMPLEX_CST_CHECK (NODE)->complex.real)
1042 #define TREE_IMAGPART(NODE) (COMPLEX_CST_CHECK (NODE)->complex.imag)
1045 #define VECTOR_CST_NELTS(NODE) (TYPE_VECTOR_SUBPARTS (TREE_TYPE (NODE)))
1046 #define VECTOR_CST_ELT(NODE,IDX) vector_cst_elt (NODE, IDX)
1048 #define VECTOR_CST_LOG2_NPATTERNS(NODE) \
1049 (VECTOR_CST_CHECK (NODE)->base.u.vector_cst.log2_npatterns)
1050 #define VECTOR_CST_NPATTERNS(NODE) \
1051 (1U << VECTOR_CST_LOG2_NPATTERNS (NODE))
1052 #define VECTOR_CST_NELTS_PER_PATTERN(NODE) \
1053 (VECTOR_CST_CHECK (NODE)->base.u.vector_cst.nelts_per_pattern)
1054 #define VECTOR_CST_DUPLICATE_P(NODE) \
1055 (VECTOR_CST_NELTS_PER_PATTERN (NODE) == 1)
1056 #define VECTOR_CST_STEPPED_P(NODE) \
1057 (VECTOR_CST_NELTS_PER_PATTERN (NODE) == 3)
1058 #define VECTOR_CST_ENCODED_ELTS(NODE) \
1059 (VECTOR_CST_CHECK (NODE)->vector.elts)
1060 #define VECTOR_CST_ENCODED_ELT(NODE, ELT) \
1061 (VECTOR_CST_CHECK (NODE)->vector.elts[ELT])
1065 #define IDENTIFIER_LENGTH(NODE) \
1066 (IDENTIFIER_NODE_CHECK (NODE)->identifier.id.len)
1067 #define IDENTIFIER_POINTER(NODE) \
1068 ((const char *) IDENTIFIER_NODE_CHECK (NODE)->identifier.id.str)
1069 #define IDENTIFIER_HASH_VALUE(NODE) \
1070 (IDENTIFIER_NODE_CHECK (NODE)->identifier.id.hash_value)
1075 #define HT_IDENT_TO_GCC_IDENT(NODE) \
1076 ((tree) ((char *) (NODE) - sizeof (struct tree_common)))
1077 #define GCC_IDENT_TO_HT_IDENT(NODE) (&((struct tree_identifier *) (NODE))->id)
1080 #define TREE_PURPOSE(NODE) (TREE_LIST_CHECK (NODE)->list.purpose)
1081 #define TREE_VALUE(NODE) (TREE_LIST_CHECK (NODE)->list.value)
1084 #define TREE_VEC_LENGTH(NODE) (TREE_VEC_CHECK (NODE)->base.u.length)
1085 #define TREE_VEC_END(NODE) \
1086 ((void) TREE_VEC_CHECK (NODE), &((NODE)->vec.a[(NODE)->vec.base.u.length]))
1088 #define TREE_VEC_ELT(NODE,I) TREE_VEC_ELT_CHECK (NODE, I)
1091 #define CONSTRUCTOR_ELTS(NODE) (CONSTRUCTOR_CHECK (NODE)->constructor.elts)
1092 #define CONSTRUCTOR_ELT(NODE,IDX) \
1093 (&(*CONSTRUCTOR_ELTS (NODE))[IDX])
1094 #define CONSTRUCTOR_NELTS(NODE) \
1095 (vec_safe_length (CONSTRUCTOR_ELTS (NODE)))
1096 #define CONSTRUCTOR_NO_CLEARING(NODE) \
1097 (CONSTRUCTOR_CHECK (NODE)->base.public_flag)
1127 /* True if NODE, a FIELD_DECL, is to be processed as a bitfield for
1129 #define CONSTRUCTOR_BITFIELD_P(NODE) \
1130 (DECL_BIT_FIELD (FIELD_DECL_CHECK (NODE)) && DECL_MODE (NODE) != BLKmode)
1132 /* True if NODE is a clobber right hand side, an expression of indeterminate
1137 #define TREE_CLOBBER_P(NODE) \
1138 (TREE_CODE (NODE) == CONSTRUCTOR && TREE_THIS_VOLATILE (NODE))
1142 /* Nonzero if NODE is an empty statement (NOP_EXPR <0>). */
1143 #define IS_EMPTY_STMT(NODE) (TREE_CODE (NODE) == NOP_EXPR \
1144 && VOID_TYPE_P (TREE_TYPE (NODE)) \
1145 && integer_zerop (TREE_OPERAND (NODE, 0)))
1148 #define TREE_OPERAND_LENGTH(NODE) tree_operand_length (NODE)
1149 #define TREE_OPERAND(NODE, I) TREE_OPERAND_CHECK (NODE, I)
1156 #define VL_EXP_OPERAND_LENGTH(NODE) \
1157 ((int)TREE_INT_CST_LOW (VL_EXP_CHECK (NODE)->exp.operands[0]))
1169 #define LOOP_EXPR_BODY(NODE) TREE_OPERAND_CHECK_CODE (NODE, LOOP_EXPR, 0)
1174 #define EXPR_LOCATION(NODE) \
1175 (CAN_HAVE_LOCATION_P ((NODE)) ? (NODE)->exp.locus : UNKNOWN_LOCATION)
1176 #define SET_EXPR_LOCATION(NODE, LOCUS) EXPR_CHECK ((NODE))->exp.locus = (LOCUS)
1177 #define EXPR_HAS_LOCATION(NODE) (LOCATION_LOCUS (EXPR_LOCATION (NODE)) \
1181 #define EXPR_LOC_OR_LOC(NODE, LOCUS) (EXPR_HAS_LOCATION (NODE) \
1182 ? (NODE)->exp.locus : (LOCUS))
1183 #define EXPR_FILENAME(NODE) LOCATION_FILE (EXPR_CHECK ((NODE))->exp.locus)
1184 #define EXPR_LINENO(NODE) LOCATION_LINE (EXPR_CHECK (NODE)->exp.locus)
1186 #define CAN_HAVE_RANGE_P(NODE) (CAN_HAVE_LOCATION_P (NODE))
1187 #define EXPR_LOCATION_RANGE(NODE) (get_expr_source_range (EXPR_CHECK ((NODE))))
1189 #define EXPR_HAS_RANGE(NODE) \
1190 (CAN_HAVE_RANGE_P (NODE) \
1191 ? EXPR_LOCATION_RANGE (NODE).m_start != UNKNOWN_LOCATION \
1196 #define CAN_HAVE_LOCATION_P(NODE) ((NODE) && EXPR_P (NODE))
1224 #define TARGET_EXPR_SLOT(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 0)
1225 #define TARGET_EXPR_INITIAL(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 1)
1226 #define TARGET_EXPR_CLEANUP(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 2)
1229 #define TARGET_EXPR_NO_ELIDE(NODE) (TARGET_EXPR_CHECK (NODE)->base.private_flag)
1233 #define DECL_EXPR_DECL(NODE) TREE_OPERAND (DECL_EXPR_CHECK (NODE), 0)
1235 #define EXIT_EXPR_COND(NODE) TREE_OPERAND (EXIT_EXPR_CHECK (NODE), 0)
1238 #define COMPOUND_LITERAL_EXPR_DECL_EXPR(NODE) \
1239 TREE_OPERAND (COMPOUND_LITERAL_EXPR_CHECK (NODE), 0)
1240 #define COMPOUND_LITERAL_EXPR_DECL(NODE) \
1241 DECL_EXPR_DECL (COMPOUND_LITERAL_EXPR_DECL_EXPR (NODE))
1244 #define SWITCH_COND(NODE) TREE_OPERAND (SWITCH_EXPR_CHECK (NODE), 0)
1245 #define SWITCH_BODY(NODE) TREE_OPERAND (SWITCH_EXPR_CHECK (NODE), 1)
1249 #define SWITCH_ALL_CASES_P(NODE) (SWITCH_EXPR_CHECK (NODE)->base.private_flag)
1253 #define CASE_LOW(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 0)
1254 #define CASE_HIGH(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 1)
1255 #define CASE_LABEL(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 2)
1256 #define CASE_CHAIN(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 3)
1260 #define TMR_BASE(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 0))
1261 #define TMR_OFFSET(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 1))
1262 #define TMR_INDEX(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 2))
1263 #define TMR_STEP(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 3))
1264 #define TMR_INDEX2(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 4))
1266 #define MR_DEPENDENCE_CLIQUE(NODE) \
1267 (TREE_CHECK2 (NODE, MEM_REF, TARGET_MEM_REF)->base.u.dependence_info.clique)
1268 #define MR_DEPENDENCE_BASE(NODE) \
1269 (TREE_CHECK2 (NODE, MEM_REF, TARGET_MEM_REF)->base.u.dependence_info.base)
1272 #define BIND_EXPR_VARS(NODE) (TREE_OPERAND (BIND_EXPR_CHECK (NODE), 0))
1273 #define BIND_EXPR_BODY(NODE) (TREE_OPERAND (BIND_EXPR_CHECK (NODE), 1))
1274 #define BIND_EXPR_BLOCK(NODE) (TREE_OPERAND (BIND_EXPR_CHECK (NODE), 2))
1278 #define GOTO_DESTINATION(NODE) TREE_OPERAND (GOTO_EXPR_CHECK (NODE), 0)
1284 #define ASM_STRING(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 0)
1285 #define ASM_OUTPUTS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 1)
1286 #define ASM_INPUTS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 2)
1287 #define ASM_CLOBBERS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 3)
1288 #define ASM_LABELS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 4)
1291 #define ASM_INPUT_P(NODE) (ASM_EXPR_CHECK (NODE)->base.static_flag)
1292 #define ASM_VOLATILE_P(NODE) (ASM_EXPR_CHECK (NODE)->base.public_flag)
1295 #define ASM_INLINE_P(NODE) (ASM_EXPR_CHECK (NODE)->base.protected_flag)
1298 #define COND_EXPR_COND(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 0))
1299 #define COND_EXPR_THEN(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 1))
1300 #define COND_EXPR_ELSE(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 2))
1303 #define CHREC_LEFT(NODE) TREE_OPERAND (POLYNOMIAL_CHREC_CHECK (NODE), 0)
1304 #define CHREC_RIGHT(NODE) TREE_OPERAND (POLYNOMIAL_CHREC_CHECK (NODE), 1)
1305 #define CHREC_VARIABLE(NODE) POLYNOMIAL_CHREC_CHECK (NODE)->base.u.chrec_var
1309 #define LABEL_EXPR_LABEL(NODE) TREE_OPERAND (LABEL_EXPR_CHECK (NODE), 0)
1312 #define CATCH_TYPES(NODE) TREE_OPERAND (CATCH_EXPR_CHECK (NODE), 0)
1313 #define CATCH_BODY(NODE) TREE_OPERAND (CATCH_EXPR_CHECK (NODE), 1)
1316 #define EH_FILTER_TYPES(NODE) TREE_OPERAND (EH_FILTER_EXPR_CHECK (NODE), 0)
1317 #define EH_FILTER_FAILURE(NODE) TREE_OPERAND (EH_FILTER_EXPR_CHECK (NODE), 1)
1320 #define OBJ_TYPE_REF_EXPR(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 0)
1321 #define OBJ_TYPE_REF_OBJECT(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 1)
1322 #define OBJ_TYPE_REF_TOKEN(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 2)
1325 #define ASSERT_EXPR_VAR(NODE) TREE_OPERAND (ASSERT_EXPR_CHECK (NODE), 0)
1326 #define ASSERT_EXPR_COND(NODE) TREE_OPERAND (ASSERT_EXPR_CHECK (NODE), 1)
1329 #define CALL_EXPR_FN(NODE) TREE_OPERAND (CALL_EXPR_CHECK (NODE), 1)
1330 #define CALL_EXPR_STATIC_CHAIN(NODE) TREE_OPERAND (CALL_EXPR_CHECK (NODE), 2)
1331 #define CALL_EXPR_ARG(NODE, I) TREE_OPERAND (CALL_EXPR_CHECK (NODE), (I) + 3)
1332 #define call_expr_nargs(NODE) (VL_EXP_OPERAND_LENGTH (NODE) - 3)
1333 #define CALL_EXPR_IFN(NODE) (CALL_EXPR_CHECK (NODE)->base.u.ifn)
1335 /* CALL_EXPR_ARGP returns a pointer to the argument vector for NODE.
1336 We can't use &CALL_EXPR_ARG (NODE, 0) because that will complain if
1341 #define CALL_EXPR_ARGP(NODE) \
1342 (&(TREE_OPERAND (CALL_EXPR_CHECK (NODE), 0)) + 3)
1345 #define TRANSACTION_EXPR_BODY(NODE) \
1346 TREE_OPERAND (TRANSACTION_EXPR_CHECK (NODE), 0)
1347 #define TRANSACTION_EXPR_OUTER(NODE) \
1348 (TRANSACTION_EXPR_CHECK (NODE)->base.static_flag)
1349 #define TRANSACTION_EXPR_RELAXED(NODE) \
1350 (TRANSACTION_EXPR_CHECK (NODE)->base.public_flag)
1356 #define OMP_BODY(NODE) \
1357 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_PARALLEL, OMP_MASTER), 0)
1358 #define OMP_CLAUSES(NODE) \
1359 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_PARALLEL, OMP_SCAN), 1)
1362 #define OMP_STANDALONE_CLAUSES(NODE) \
1363 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_CACHE, OMP_TARGET_EXIT_DATA), 0)
1365 #define OACC_DATA_BODY(NODE) \
1366 TREE_OPERAND (OACC_DATA_CHECK (NODE), 0)
1367 #define OACC_DATA_CLAUSES(NODE) \
1368 TREE_OPERAND (OACC_DATA_CHECK (NODE), 1)
1370 #define OACC_HOST_DATA_BODY(NODE) \
1371 TREE_OPERAND (OACC_HOST_DATA_CHECK (NODE), 0)
1372 #define OACC_HOST_DATA_CLAUSES(NODE) \
1373 TREE_OPERAND (OACC_HOST_DATA_CHECK (NODE), 1)
1375 #define OACC_CACHE_CLAUSES(NODE) \
1376 TREE_OPERAND (OACC_CACHE_CHECK (NODE), 0)
1378 #define OACC_DECLARE_CLAUSES(NODE) \
1379 TREE_OPERAND (OACC_DECLARE_CHECK (NODE), 0)
1381 #define OACC_ENTER_DATA_CLAUSES(NODE) \
1382 TREE_OPERAND (OACC_ENTER_DATA_CHECK (NODE), 0)
1384 #define OACC_EXIT_DATA_CLAUSES(NODE) \
1385 TREE_OPERAND (OACC_EXIT_DATA_CHECK (NODE), 0)
1387 #define OACC_UPDATE_CLAUSES(NODE) \
1388 TREE_OPERAND (OACC_UPDATE_CHECK (NODE), 0)
1390 #define OMP_PARALLEL_BODY(NODE) TREE_OPERAND (OMP_PARALLEL_CHECK (NODE), 0)
1391 #define OMP_PARALLEL_CLAUSES(NODE) TREE_OPERAND (OMP_PARALLEL_CHECK (NODE), 1)
1393 #define OMP_TASK_BODY(NODE) TREE_OPERAND (OMP_TASK_CHECK (NODE), 0)
1394 #define OMP_TASK_CLAUSES(NODE) TREE_OPERAND (OMP_TASK_CHECK (NODE), 1)
1396 #define OMP_TASKREG_CHECK(NODE) TREE_RANGE_CHECK (NODE, OMP_PARALLEL, OMP_TASK)
1397 #define OMP_TASKREG_BODY(NODE) TREE_OPERAND (OMP_TASKREG_CHECK (NODE), 0)
1398 #define OMP_TASKREG_CLAUSES(NODE) TREE_OPERAND (OMP_TASKREG_CHECK (NODE), 1)
1400 #define OMP_LOOPING_CHECK(NODE) TREE_RANGE_CHECK (NODE, OMP_FOR, OACC_LOOP)
1401 #define OMP_FOR_BODY(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 0)
1402 #define OMP_FOR_CLAUSES(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 1)
1403 #define OMP_FOR_INIT(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 2)
1404 #define OMP_FOR_COND(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 3)
1405 #define OMP_FOR_INCR(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 4)
1406 #define OMP_FOR_PRE_BODY(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 5)
1407 #define OMP_FOR_ORIG_DECLS(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 6)
1409 #define OMP_SECTIONS_BODY(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 0)
1410 #define OMP_SECTIONS_CLAUSES(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 1)
1412 #define OMP_SECTION_BODY(NODE) TREE_OPERAND (OMP_SECTION_CHECK (NODE), 0)
1414 #define OMP_SINGLE_BODY(NODE) TREE_OPERAND (OMP_SINGLE_CHECK (NODE), 0)
1415 #define OMP_SINGLE_CLAUSES(NODE) TREE_OPERAND (OMP_SINGLE_CHECK (NODE), 1)
1417 #define OMP_MASTER_BODY(NODE) TREE_OPERAND (OMP_MASTER_CHECK (NODE), 0)
1419 #define OMP_TASKGROUP_BODY(NODE) TREE_OPERAND (OMP_TASKGROUP_CHECK (NODE), 0)
1420 #define OMP_TASKGROUP_CLAUSES(NODE) \
1421 TREE_OPERAND (OMP_TASKGROUP_CHECK (NODE), 1)
1423 #define OMP_ORDERED_BODY(NODE) TREE_OPERAND (OMP_ORDERED_CHECK (NODE), 0)
1424 #define OMP_ORDERED_CLAUSES(NODE) TREE_OPERAND (OMP_ORDERED_CHECK (NODE), 1)
1426 #define OMP_CRITICAL_BODY(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 0)
1427 #define OMP_CRITICAL_CLAUSES(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 1)
1428 #define OMP_CRITICAL_NAME(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 2)
1430 #define OMP_TEAMS_BODY(NODE) TREE_OPERAND (OMP_TEAMS_CHECK (NODE), 0)
1431 #define OMP_TEAMS_CLAUSES(NODE) TREE_OPERAND (OMP_TEAMS_CHECK (NODE), 1)
1433 #define OMP_TARGET_DATA_BODY(NODE) \
1434 TREE_OPERAND (OMP_TARGET_DATA_CHECK (NODE), 0)
1435 #define OMP_TARGET_DATA_CLAUSES(NODE)\
1436 TREE_OPERAND (OMP_TARGET_DATA_CHECK (NODE), 1)
1438 #define OMP_TARGET_BODY(NODE) TREE_OPERAND (OMP_TARGET_CHECK (NODE), 0)
1439 #define OMP_TARGET_CLAUSES(NODE) TREE_OPERAND (OMP_TARGET_CHECK (NODE), 1)
1441 #define OMP_TARGET_UPDATE_CLAUSES(NODE)\
1442 TREE_OPERAND (OMP_TARGET_UPDATE_CHECK (NODE), 0)
1444 #define OMP_TARGET_ENTER_DATA_CLAUSES(NODE)\
1445 TREE_OPERAND (OMP_TARGET_ENTER_DATA_CHECK (NODE), 0)
1447 #define OMP_TARGET_EXIT_DATA_CLAUSES(NODE)\
1448 TREE_OPERAND (OMP_TARGET_EXIT_DATA_CHECK (NODE), 0)
1450 #define OMP_SCAN_BODY(NODE) TREE_OPERAND (OMP_SCAN_CHECK (NODE), 0)
1451 #define OMP_SCAN_CLAUSES(NODE) TREE_OPERAND (OMP_SCAN_CHECK (NODE), 1)
1453 #define OMP_CLAUSE_SIZE(NODE) \
1454 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \
1458 #define OMP_CLAUSE_CHAIN(NODE) TREE_CHAIN (OMP_CLAUSE_CHECK (NODE))
1459 #define OMP_CLAUSE_DECL(NODE) \
1460 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \
1463 #define OMP_CLAUSE_HAS_LOCATION(NODE) \
1464 (LOCATION_LOCUS ((OMP_CLAUSE_CHECK (NODE))->omp_clause.locus) \
1466 #define OMP_CLAUSE_LOCATION(NODE) (OMP_CLAUSE_CHECK (NODE))->omp_clause.locus
1470 #define OMP_SECTION_LAST(NODE) \
1471 (OMP_SECTION_CHECK (NODE)->base.private_flag)
1475 #define OMP_PARALLEL_COMBINED(NODE) \
1476 (OMP_PARALLEL_CHECK (NODE)->base.private_flag)
1480 #define OMP_TEAMS_COMBINED(NODE) \
1481 (OMP_TEAMS_CHECK (NODE)->base.private_flag)
1485 #define OMP_TARGET_COMBINED(NODE) \
1486 (OMP_TARGET_CHECK (NODE)->base.private_flag)
1489 #define OMP_ATOMIC_MEMORY_ORDER(NODE) \
1490 (TREE_RANGE_CHECK (NODE, OMP_ATOMIC, \
1496 #define OMP_CLAUSE_PRIVATE_DEBUG(NODE) \
1497 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE)->base.public_flag)
1501 #define OMP_CLAUSE_PRIVATE_OUTER_REF(NODE) \
1502 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE))
1507 #define OMP_CLAUSE_PRIVATE_TASKLOOP_IV(NODE) \
1508 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE))
1511 #define OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT(NODE) \
1512 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE)->base.public_flag)
1516 #define OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE(NODE) \
1517 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE))
1521 #define OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE(NODE) \
1522 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE)->base.public_flag)
1523 #define OMP_CLAUSE_LASTPRIVATE_STMT(NODE) \
1524 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
1527 #define OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ(NODE) \
1528 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
1534 #define OMP_CLAUSE_LASTPRIVATE_LOOP_IV(NODE) \
1535 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE))
1538 #define OMP_CLAUSE_LASTPRIVATE_CONDITIONAL(NODE) \
1539 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE))
1544 #define OMP_CLAUSE_SHARED_FIRSTPRIVATE(NODE) \
1545 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SHARED)->base.public_flag)
1549 #define OMP_CLAUSE_SHARED_READONLY(NODE) \
1550 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SHARED))
1552 #define OMP_CLAUSE_IF_MODIFIER(NODE) \
1553 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_IF)->omp_clause.subcode.if_modifier)
1555 #define OMP_CLAUSE_FINAL_EXPR(NODE) \
1556 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FINAL), 0)
1557 #define OMP_CLAUSE_IF_EXPR(NODE) \
1558 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_IF), 0)
1559 #define OMP_CLAUSE_NUM_THREADS_EXPR(NODE) \
1560 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_THREADS),0)
1561 #define OMP_CLAUSE_SCHEDULE_CHUNK_EXPR(NODE) \
1562 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE), 0)
1563 #define OMP_CLAUSE_NUM_TASKS_EXPR(NODE) \
1564 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TASKS), 0)
1565 #define OMP_CLAUSE_HINT_EXPR(NODE) \
1566 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_HINT), 0)
1568 #define OMP_CLAUSE_GRAINSIZE_EXPR(NODE) \
1569 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GRAINSIZE),0)
1571 #define OMP_CLAUSE_PRIORITY_EXPR(NODE) \
1572 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIORITY),0)
1575 #define OMP_CLAUSE_EXPR(NODE, CLAUSE) \
1576 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, CLAUSE), 0)
1577 #define OMP_CLAUSE_GANG_EXPR(NODE) \
1579 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GANG), 0)
1580 #define OMP_CLAUSE_GANG_STATIC_EXPR(NODE) \
1582 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GANG), 1)
1583 #define OMP_CLAUSE_ASYNC_EXPR(NODE) \
1585 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ASYNC), 0)
1586 #define OMP_CLAUSE_WAIT_EXPR(NODE) \
1588 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_WAIT), 0)
1589 #define OMP_CLAUSE_VECTOR_EXPR(NODE) \
1591 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_VECTOR), 0)
1592 #define OMP_CLAUSE_WORKER_EXPR(NODE) \
1594 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_WORKER), 0)
1595 #define OMP_CLAUSE_NUM_GANGS_EXPR(NODE) \
1597 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_GANGS), 0)
1598 #define OMP_CLAUSE_NUM_WORKERS_EXPR(NODE) \
1600 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_WORKERS), 0)
1601 #define OMP_CLAUSE_VECTOR_LENGTH_EXPR(NODE) \
1603 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_VECTOR_LENGTH), 0)
1605 #define OMP_CLAUSE_DEPEND_KIND(NODE) \
1606 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEPEND)->omp_clause.subcode.depend_kind)
1608 #define OMP_CLAUSE_DEPEND_SINK_NEGATIVE(NODE) \
1609 TREE_PUBLIC (TREE_LIST_CHECK (NODE))
1611 #define OMP_CLAUSE_MAP_KIND(NODE) \
1612 ((enum gomp_map_kind) OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->omp_clause.subcode.map_kind)
1613 #define OMP_CLAUSE_SET_MAP_KIND(NODE, MAP_KIND) \
1614 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->omp_clause.subcode.map_kind \
1620 #define OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION(NODE) \
1621 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.public_flag)
1624 #define OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION(NODE) \
1625 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1628 #define OMP_CLAUSE_MAP_IN_REDUCTION(NODE) \
1629 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1633 #define OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT(NODE) \
1634 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_USE_DEVICE_PTR)->base.public_flag)
1636 #define OMP_CLAUSE_PROC_BIND_KIND(NODE) \
1637 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PROC_BIND)->omp_clause.subcode.proc_bind_kind)
1639 #define OMP_CLAUSE_DEVICE_TYPE_KIND(NODE) \
1640 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE_TYPE)->omp_clause.subcode.device_type_kind)
1642 #define OMP_CLAUSE_COLLAPSE_EXPR(NODE) \
1643 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 0)
1644 #define OMP_CLAUSE_COLLAPSE_ITERVAR(NODE) \
1645 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 1)
1646 #define OMP_CLAUSE_COLLAPSE_COUNT(NODE) \
1647 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 2)
1649 #define OMP_CLAUSE_ORDERED_EXPR(NODE) \
1650 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDERED), 0)
1652 #define OMP_CLAUSE_REDUCTION_CODE(NODE) \
1653 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1655 #define OMP_CLAUSE_REDUCTION_INIT(NODE) \
1656 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1658 #define OMP_CLAUSE_REDUCTION_MERGE(NODE) \
1659 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1661 #define OMP_CLAUSE_REDUCTION_GIMPLE_INIT(NODE) \
1662 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
1663 #define OMP_CLAUSE_REDUCTION_GIMPLE_MERGE(NODE) \
1664 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_merge
1665 #define OMP_CLAUSE_REDUCTION_PLACEHOLDER(NODE) \
1666 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1668 #define OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER(NODE) \
1669 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1674 #define OMP_CLAUSE_REDUCTION_OMP_ORIG_REF(NODE) \
1675 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1679 #define OMP_CLAUSE_REDUCTION_TASK(NODE) \
1680 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_REDUCTION))
1683 #define OMP_CLAUSE_REDUCTION_INSCAN(NODE) \
1684 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_REDUCTION))
1688 #define OMP_CLAUSE_LINEAR_NO_COPYIN(NODE) \
1689 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.public_flag)
1693 #define OMP_CLAUSE_LINEAR_NO_COPYOUT(NODE) \
1694 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR))
1697 #define OMP_CLAUSE_LINEAR_VARIABLE_STRIDE(NODE) \
1698 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR))
1702 #define OMP_CLAUSE_LINEAR_ARRAY(NODE) \
1703 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.deprecated_flag)
1705 #define OMP_CLAUSE_LINEAR_STEP(NODE) \
1706 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR), 1)
1708 #define OMP_CLAUSE_LINEAR_STMT(NODE) \
1709 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR), 2)
1711 #define OMP_CLAUSE_LINEAR_GIMPLE_SEQ(NODE) \
1712 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
1714 #define OMP_CLAUSE_LINEAR_KIND(NODE) \
1715 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->omp_clause.subcode.linear_kind)
1717 #define OMP_CLAUSE_ALIGNED_ALIGNMENT(NODE) \
1718 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALIGNED), 1)
1720 #define OMP_CLAUSE_NUM_TEAMS_EXPR(NODE) \
1721 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TEAMS), 0)
1723 #define OMP_CLAUSE_THREAD_LIMIT_EXPR(NODE) \
1724 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
1727 #define OMP_CLAUSE_DEVICE_ID(NODE) \
1728 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE), 0)
1730 #define OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR(NODE) \
1731 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
1734 #define OMP_CLAUSE_SAFELEN_EXPR(NODE) \
1735 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SAFELEN), 0)
1737 #define OMP_CLAUSE_SIMDLEN_EXPR(NODE) \
1738 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SIMDLEN), 0)
1740 #define OMP_CLAUSE__SIMDUID__DECL(NODE) \
1741 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SIMDUID_), 0)
1743 #define OMP_CLAUSE_SCHEDULE_KIND(NODE) \
1744 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE)->omp_clause.subcode.schedule_kind)
1747 #define OMP_CLAUSE_SCHEDULE_SIMD(NODE) \
1748 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE)->base.public_flag)
1750 #define OMP_CLAUSE_DEFAULT_KIND(NODE) \
1751 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEFAULT)->omp_clause.subcode.default_kind)
1753 #define OMP_CLAUSE_DEFAULTMAP_KIND(NODE) \
1754 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEFAULTMAP)->omp_clause.subcode.defaultmap_kind)
1755 #define OMP_CLAUSE_DEFAULTMAP_CATEGORY(NODE) \
1757 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) & OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK))
1758 #define OMP_CLAUSE_DEFAULTMAP_BEHAVIOR(NODE) \
1760 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) & OMP_CLAUSE_DEFAULTMAP_MASK))
1761 #define OMP_CLAUSE_DEFAULTMAP_SET_KIND(NODE, BEHAVIOR, CATEGORY) \
1762 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) \
1765 #define OMP_CLAUSE_BIND_KIND(NODE) \
1766 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_BIND)->omp_clause.subcode.bind_kind)
1768 #define OMP_CLAUSE_TILE_LIST(NODE) \
1769 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 0)
1770 #define OMP_CLAUSE_TILE_ITERVAR(NODE) \
1771 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 1)
1772 #define OMP_CLAUSE_TILE_COUNT(NODE) \
1773 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 2)
1775 #define OMP_CLAUSE__GRIDDIM__DIMENSION(NODE) \
1776 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__GRIDDIM_)\
1778 #define OMP_CLAUSE__GRIDDIM__SIZE(NODE) \
1779 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__GRIDDIM_), 0)
1780 #define OMP_CLAUSE__GRIDDIM__GROUP(NODE) \
1781 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__GRIDDIM_), 1)
1784 #define OMP_CLAUSE__CONDTEMP__ITER(NODE) \
1785 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__CONDTEMP_)->base.public_flag)
1789 #define OMP_CLAUSE__SCANTEMP__ALLOC(NODE) \
1790 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SCANTEMP_)->base.public_flag)
1795 #define OMP_CLAUSE__SCANTEMP__CONTROL(NODE) \
1796 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SCANTEMP_))
1800 /* Whether SSA_NAME NODE is a virtual operand. This simply caches the
1802 #define SSA_NAME_IS_VIRTUAL_OPERAND(NODE) \
1803 SSA_NAME_CHECK (NODE)->base.public_flag
1807 #define SSA_NAME_IDENTIFIER(NODE) \
1808 (SSA_NAME_CHECK (NODE)->ssa_name.var != NULL_TREE \
1809 ? (TREE_CODE ((NODE)->ssa_name.var) == IDENTIFIER_NODE \
1810 ? (NODE)->ssa_name.var \
1811 : DECL_NAME ((NODE)->ssa_name.var)) \
1817 #define SSA_NAME_VAR(NODE) \
1818 (SSA_NAME_CHECK (NODE)->ssa_name.var == NULL_TREE \
1819 || TREE_CODE ((NODE)->ssa_name.var) == IDENTIFIER_NODE \
1820 ? NULL_TREE : (NODE)->ssa_name.var)
1822 #define SET_SSA_NAME_VAR_OR_IDENTIFIER(NODE,VAR) \
1826 SSA_NAME_CHECK (NODE)->ssa_name.var = var_; \
1827 SSA_NAME_IS_VIRTUAL_OPERAND (NODE) \
1835 #define SSA_NAME_DEF_STMT(NODE) SSA_NAME_CHECK (NODE)->ssa_name.def_stmt
1839 #define SSA_NAME_VERSION(NODE) SSA_NAME_CHECK (NODE)->base.u.version
1844 #define SSA_NAME_OCCURS_IN_ABNORMAL_PHI(NODE) \
1845 SSA_NAME_CHECK (NODE)->base.asm_written_flag
1850 #define SSA_NAME_IN_FREE_LIST(NODE) \
1851 SSA_NAME_CHECK (NODE)->base.nothrow_flag
1858 #define SSA_NAME_IS_DEFAULT_DEF(NODE) \
1859 SSA_NAME_CHECK (NODE)->base.default_def_flag
1865 #define SSA_NAME_POINTS_TO_READONLY_MEMORY(NODE) \
1866 SSA_NAME_CHECK (NODE)->base.deprecated_flag
1885 #define SSA_NAME_IMM_USE_NODE(NODE) SSA_NAME_CHECK (NODE)->ssa_name.imm_uses
1887 #define OMP_CLAUSE_CODE(NODE) \
1888 (OMP_CLAUSE_CHECK (NODE))->omp_clause.code
1890 #define OMP_CLAUSE_SET_CODE(NODE, CODE) \
1891 ((OMP_CLAUSE_CHECK (NODE))->omp_clause.code = (CODE))
1893 #define OMP_CLAUSE_OPERAND(NODE, I) \
1894 OMP_CLAUSE_ELT_CHECK (NODE, I)
1897 #define BLOCK_VARS(NODE) (BLOCK_CHECK (NODE)->block.vars)
1898 #define BLOCK_NONLOCALIZED_VARS(NODE) \
1899 (BLOCK_CHECK (NODE)->block.nonlocalized_vars)
1900 #define BLOCK_NUM_NONLOCALIZED_VARS(NODE) \
1901 vec_safe_length (BLOCK_NONLOCALIZED_VARS (NODE))
1902 #define BLOCK_NONLOCALIZED_VAR(NODE,N) (*BLOCK_NONLOCALIZED_VARS (NODE))[N]
1903 #define BLOCK_SUBBLOCKS(NODE) (BLOCK_CHECK (NODE)->block.subblocks)
1904 #define BLOCK_SUPERCONTEXT(NODE) (BLOCK_CHECK (NODE)->block.supercontext)
1905 #define BLOCK_CHAIN(NODE) (BLOCK_CHECK (NODE)->block.chain)
1906 #define BLOCK_ABSTRACT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.abstract_origin)
1907 #define BLOCK_ORIGIN(NODE) \
1908 (BLOCK_ABSTRACT_ORIGIN(NODE) ? BLOCK_ABSTRACT_ORIGIN(NODE) : (NODE))
1909 #define BLOCK_DIE(NODE) (BLOCK_CHECK (NODE)->block.die)
1912 #define BLOCK_SAME_RANGE(NODE) (BLOCK_CHECK (NODE)->base.u.bits.nameless_flag)
1915 #define BLOCK_IN_COLD_SECTION_P(NODE) \
1916 (BLOCK_CHECK (NODE)->base.u.bits.atomic_flag)
1921 #define BLOCK_NUMBER(NODE) (BLOCK_CHECK (NODE)->block.block_num)
1945 #define BLOCK_FRAGMENT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_origin)
1946 #define BLOCK_FRAGMENT_CHAIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_chain)
1952 #define BLOCK_SOURCE_LOCATION(NODE) (BLOCK_CHECK (NODE)->block.locus)
1957 #define BLOCK_SOURCE_END_LOCATION(NODE) (BLOCK_CHECK (NODE)->block.end_locus)
1970 #define TYPE_UID(NODE) (TYPE_CHECK (NODE)->type_common.uid)
1973 #define TYPE_SIZE(NODE) (TYPE_CHECK (NODE)->type_common.size)
1975 #define TYPE_SIZE_UNIT(NODE) (TYPE_CHECK (NODE)->type_common.size_unit)
1976 #define TYPE_POINTER_TO(NODE) (TYPE_CHECK (NODE)->type_common.pointer_to)
1977 #define TYPE_REFERENCE_TO(NODE) (TYPE_CHECK (NODE)->type_common.reference_to)
1978 #define TYPE_PRECISION(NODE) (TYPE_CHECK (NODE)->type_common.precision)
1979 #define TYPE_NAME(NODE) (TYPE_CHECK (NODE)->type_common.name)
1980 #define TYPE_NEXT_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.next_variant)
1981 #define TYPE_MAIN_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.main_variant)
1982 #define TYPE_CONTEXT(NODE) (TYPE_CHECK (NODE)->type_common.context)
1984 #define TYPE_MODE_RAW(NODE) (TYPE_CHECK (NODE)->type_common.mode)
1985 #define TYPE_MODE(NODE) \
1986 (VECTOR_TYPE_P (TYPE_CHECK (NODE)) \
1987 ? vector_type_mode (NODE) : (NODE)->type_common.mode)
1988 #define SCALAR_TYPE_MODE(NODE) \
1989 (as_a <scalar_mode> (TYPE_CHECK (NODE)->type_common.mode))
1990 #define SCALAR_INT_TYPE_MODE(NODE) \
1991 (as_a <scalar_int_mode> (TYPE_CHECK (NODE)->type_common.mode))
1992 #define SCALAR_FLOAT_TYPE_MODE(NODE) \
1993 (as_a <scalar_float_mode> (TYPE_CHECK (NODE)->type_common.mode))
1994 #define SET_TYPE_MODE(NODE, MODE) \
1995 (TYPE_CHECK (NODE)->type_common.mode = (MODE))
2016 #define TYPE_CANONICAL(NODE) (TYPE_CHECK (NODE)->type_common.canonical)
2023 #define TYPE_STRUCTURAL_EQUALITY_P(NODE) (TYPE_CANONICAL (NODE) == NULL_TREE)
2026 #define SET_TYPE_STRUCTURAL_EQUALITY(NODE) (TYPE_CANONICAL (NODE) = NULL_TREE)
2028 #define TYPE_IBIT(NODE) (GET_MODE_IBIT (TYPE_MODE (NODE)))
2029 #define TYPE_FBIT(NODE) (GET_MODE_FBIT (TYPE_MODE (NODE)))
2036 #define TYPE_ALIAS_SET(NODE) (TYPE_CHECK (NODE)->type_common.alias_set)
2040 #define TYPE_ALIAS_SET_KNOWN_P(NODE) \
2041 (TYPE_CHECK (NODE)->type_common.alias_set != -1)
2045 #define TYPE_ATTRIBUTES(NODE) (TYPE_CHECK (NODE)->type_common.attributes)
2050 #define TYPE_ALIGN(NODE) \
2051 (TYPE_CHECK (NODE)->type_common.align \
2052 ? ((unsigned)1) << ((NODE)->type_common.align - 1) : 0)
2054 /* Specify that TYPE_ALIGN(NODE) is X. */
2055 #define SET_TYPE_ALIGN(NODE, X) \
2056 (TYPE_CHECK (NODE)->type_common.align = ffs_hwi (X))
2060 #define TYPE_USER_ALIGN(NODE) (TYPE_CHECK (NODE)->base.u.bits.user_align)
2062 /* The alignment for NODE, in bytes. */
2063 #define TYPE_ALIGN_UNIT(NODE) (TYPE_ALIGN (NODE) / BITS_PER_UNIT)
2067 #define TYPE_WARN_IF_NOT_ALIGN(NODE) \
2068 (TYPE_CHECK (NODE)->type_common.warn_if_not_align \
2069 ? ((unsigned)1) << ((NODE)->type_common.warn_if_not_align - 1) : 0)
2071 /* Specify that TYPE_WARN_IF_NOT_ALIGN(NODE) is X. */
2072 #define SET_TYPE_WARN_IF_NOT_ALIGN(NODE, X) \
2073 (TYPE_CHECK (NODE)->type_common.warn_if_not_align = ffs_hwi (X))
2082 #define TYPE_STUB_DECL(NODE) (TREE_CHAIN (TYPE_CHECK (NODE)))
2087 #define TYPE_NO_FORCE_BLK(NODE) \
2088 (TYPE_CHECK (NODE)->type_common.no_force_blk_flag)
2091 #define TYPE_VOLATILE(NODE) (TYPE_CHECK (NODE)->base.volatile_flag)
2094 #define TYPE_ATOMIC(NODE) (TYPE_CHECK (NODE)->base.u.bits.atomic_flag)
2097 #define TYPE_READONLY(NODE) (TYPE_CHECK (NODE)->base.readonly_flag)
2101 #define TYPE_RESTRICT(NODE) (TYPE_CHECK (NODE)->type_common.restrict_flag)
2104 #define TYPE_NAMELESS(NODE) (TYPE_CHECK (NODE)->base.u.bits.nameless_flag)
2107 #define TYPE_ADDR_SPACE(NODE) (TYPE_CHECK (NODE)->base.u.bits.address_space)
2122 #define TYPE_QUALS(NODE) \
2123 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2124 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2125 | (TYPE_ATOMIC (NODE) * TYPE_QUAL_ATOMIC) \
2126 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT) \
2127 | (ENCODE_QUAL_ADDR_SPACE (TYPE_ADDR_SPACE (NODE)))))
2130 #define TYPE_QUALS_NO_ADDR_SPACE(NODE) \
2131 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2132 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2133 | (TYPE_ATOMIC (NODE) * TYPE_QUAL_ATOMIC) \
2134 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT)))
2138 #define TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC(NODE) \
2139 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2140 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2141 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT)))
2144 #define TYPE_LANG_FLAG_0(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_0)
2145 #define TYPE_LANG_FLAG_1(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_1)
2146 #define TYPE_LANG_FLAG_2(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_2)
2147 #define TYPE_LANG_FLAG_3(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_3)
2148 #define TYPE_LANG_FLAG_4(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_4)
2149 #define TYPE_LANG_FLAG_5(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_5)
2150 #define TYPE_LANG_FLAG_6(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_6)
2151 #define TYPE_LANG_FLAG_7(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_7)
2155 #define TREE_VISITED(NODE) ((NODE)->base.visited)
2160 #define TYPE_STRING_FLAG(NODE) \
2161 (ARRAY_OR_INTEGER_TYPE_CHECK (NODE)->type_common.string_flag)
2166 #define TYPE_CXX_ODR_P(NODE) \
2167 (RECORD_OR_UNION_CHECK (NODE)->type_common.string_flag)
2171 #define TYPE_VECTOR_OPAQUE(NODE) \
2172 (VECTOR_TYPE_CHECK (NODE)->base.default_def_flag)
2176 #define TYPE_NEEDS_CONSTRUCTING(NODE) \
2177 (TYPE_CHECK (NODE)->type_common.needs_constructing_flag)
2183 #define TYPE_TRANSPARENT_AGGR(NODE) \
2184 (RECORD_OR_UNION_CHECK (NODE)->type_common.transparent_aggr_flag)
2189 #define TYPE_NONALIASED_COMPONENT(NODE) \
2190 (ARRAY_TYPE_CHECK (NODE)->type_common.transparent_aggr_flag)
2201 #define TYPE_TYPELESS_STORAGE(NODE) \
2202 (TREE_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, \
2207 #define TYPE_PACKED(NODE) (TYPE_CHECK (NODE)->base.u.bits.packed_flag)
2212 #define TYPE_CONTAINS_PLACEHOLDER_INTERNAL(NODE) \
2213 (TYPE_CHECK (NODE)->type_common.contains_placeholder_bits)
2216 #define TYPE_FINAL_P(NODE) \
2217 (RECORD_OR_UNION_CHECK (NODE)->base.default_def_flag)
2228 #define TYPE_SYMTAB_ADDRESS(NODE) \
2229 (TYPE_CHECK (NODE)->type_common.symtab.address)
2233 #define TYPE_SYMTAB_DIE(NODE) \
2234 (TYPE_CHECK (NODE)->type_common.symtab.die)
2243 #define TYPE_LANG_SPECIFIC(NODE) \
2244 (TYPE_CHECK (NODE)->type_with_lang_specific.lang_specific)
2246 #define TYPE_VALUES(NODE) (ENUMERAL_TYPE_CHECK (NODE)->type_non_common.values)
2247 #define TYPE_DOMAIN(NODE) (ARRAY_TYPE_CHECK (NODE)->type_non_common.values)
2248 #define TYPE_FIELDS(NODE) \
2249 (RECORD_OR_UNION_CHECK (NODE)->type_non_common.values)
2250 #define TYPE_CACHED_VALUES(NODE) (TYPE_CHECK (NODE)->type_non_common.values)
2251 #define TYPE_ARG_TYPES(NODE) \
2252 (FUNC_OR_METHOD_CHECK (NODE)->type_non_common.values)
2253 #define TYPE_VALUES_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.values)
2255 #define TYPE_MIN_VALUE(NODE) \
2256 (NUMERICAL_TYPE_CHECK (NODE)->type_non_common.minval)
2257 #define TYPE_NEXT_PTR_TO(NODE) \
2258 (POINTER_TYPE_CHECK (NODE)->type_non_common.minval)
2259 #define TYPE_NEXT_REF_TO(NODE) \
2260 (REFERENCE_TYPE_CHECK (NODE)->type_non_common.minval)
2261 #define TYPE_VFIELD(NODE) \
2262 (RECORD_OR_UNION_CHECK (NODE)->type_non_common.minval)
2263 #define TYPE_MIN_VALUE_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.minval)
2265 #define TYPE_MAX_VALUE(NODE) \
2266 (NUMERICAL_TYPE_CHECK (NODE)->type_non_common.maxval)
2267 #define TYPE_METHOD_BASETYPE(NODE) \
2268 (FUNC_OR_METHOD_CHECK (NODE)->type_non_common.maxval)
2269 #define TYPE_OFFSET_BASETYPE(NODE) \
2270 (OFFSET_TYPE_CHECK (NODE)->type_non_common.maxval)
2276 #define TYPE_MAX_VALUE_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.maxval)
2279 #define TYPE_BINFO(NODE) (RECORD_OR_UNION_CHECK (NODE)->type_non_common.maxval)
2282 #define TYPE_LANG_SLOT_1(NODE) \
2283 (TYPE_CHECK (NODE)->type_non_common.lang_1)
2303 #define BINFO_VIRTUAL_P(NODE) (TREE_BINFO_CHECK (NODE)->base.static_flag)
2306 #define BINFO_FLAG_0(NODE) TREE_LANG_FLAG_0 (TREE_BINFO_CHECK (NODE))
2307 #define BINFO_FLAG_1(NODE) TREE_LANG_FLAG_1 (TREE_BINFO_CHECK (NODE))
2308 #define BINFO_FLAG_2(NODE) TREE_LANG_FLAG_2 (TREE_BINFO_CHECK (NODE))
2309 #define BINFO_FLAG_3(NODE) TREE_LANG_FLAG_3 (TREE_BINFO_CHECK (NODE))
2310 #define BINFO_FLAG_4(NODE) TREE_LANG_FLAG_4 (TREE_BINFO_CHECK (NODE))
2311 #define BINFO_FLAG_5(NODE) TREE_LANG_FLAG_5 (TREE_BINFO_CHECK (NODE))
2312 #define BINFO_FLAG_6(NODE) TREE_LANG_FLAG_6 (TREE_BINFO_CHECK (NODE))
2315 #define BINFO_TYPE(NODE) TREE_TYPE (TREE_BINFO_CHECK (NODE))
2323 #define BINFO_OFFSET(NODE) (TREE_BINFO_CHECK (NODE)->binfo.offset)
2324 #define BINFO_OFFSET_ZEROP(NODE) (integer_zerop (BINFO_OFFSET (NODE)))
2330 #define BINFO_VTABLE(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtable)
2335 #define BINFO_VIRTUALS(NODE) (TREE_BINFO_CHECK (NODE)->binfo.virtuals)
2343 #define BINFO_BASE_BINFOS(NODE) (&TREE_BINFO_CHECK (NODE)->binfo.base_binfos)
2345 /* The number of basetypes for NODE. */
2346 #define BINFO_N_BASE_BINFOS(NODE) (BINFO_BASE_BINFOS (NODE)->length ())
2349 #define BINFO_BASE_BINFO(NODE,N) \
2350 ((*BINFO_BASE_BINFOS (NODE))[(N)])
2351 #define BINFO_BASE_ITERATE(NODE,N,B) \
2352 (BINFO_BASE_BINFOS (NODE)->iterate ((N), &(B)))
2353 #define BINFO_BASE_APPEND(NODE,T) \
2354 (BINFO_BASE_BINFOS (NODE)->quick_push ((T)))
2361 #define BINFO_VPTR_FIELD(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vptr_field)
2366 #define BINFO_BASE_ACCESSES(NODE) \
2367 (TREE_BINFO_CHECK (NODE)->binfo.base_accesses)
2369 #define BINFO_BASE_ACCESS(NODE,N) \
2370 (*BINFO_BASE_ACCESSES (NODE))[(N)]
2371 #define BINFO_BASE_ACCESS_APPEND(NODE,T) \
2372 BINFO_BASE_ACCESSES (NODE)->quick_push ((T))
2376 #define BINFO_SUBVTT_INDEX(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtt_subvtt)
2380 #define BINFO_VPTR_INDEX(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtt_vptr)
2386 #define BINFO_INHERITANCE_CHAIN(NODE) \
2387 (TREE_BINFO_CHECK (NODE)->binfo.inheritance)
2401 #define DECL_CHAIN(NODE) (TREE_CHAIN (DECL_MINIMAL_CHECK (NODE)))
2405 #define DECL_NAME(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.name)
2408 #define TYPE_IDENTIFIER(NODE) \
2409 (TYPE_NAME (NODE) && DECL_P (TYPE_NAME (NODE)) \
2410 ? DECL_NAME (TYPE_NAME (NODE)) : TYPE_NAME (NODE))
2413 #define DECL_UID(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.uid)
2417 #define DEBUG_TEMP_UID(NODE) (-DECL_UID (TREE_CHECK ((NODE), DEBUG_EXPR_DECL)))
2421 #define DECL_PT_UID(NODE) \
2422 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid == -1u \
2423 ? (NODE)->decl_minimal.uid : (NODE)->decl_common.pt_uid)
2425 #define SET_DECL_PT_UID(NODE, UID) \
2426 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid = (UID))
2429 #define DECL_PT_UID_SET_P(NODE) \
2430 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid != -1u)
2436 #define DECL_SOURCE_LOCATION(NODE) \
2437 (DECL_MINIMAL_CHECK (NODE)->decl_minimal.locus)
2438 #define DECL_SOURCE_FILE(NODE) LOCATION_FILE (DECL_SOURCE_LOCATION (NODE))
2439 #define DECL_SOURCE_LINE(NODE) LOCATION_LINE (DECL_SOURCE_LOCATION (NODE))
2440 #define DECL_SOURCE_COLUMN(NODE) LOCATION_COLUMN (DECL_SOURCE_LOCATION (NODE))
2456 #define DECL_CONTEXT(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.context)
2457 #define DECL_FIELD_CONTEXT(NODE) \
2458 (FIELD_DECL_CHECK (NODE)->decl_minimal.context)
2461 #define DECL_NAMELESS(NODE) (DECL_MINIMAL_CHECK (NODE)->base.u.bits.nameless_flag)
2469 #define DECL_ABSTRACT_ORIGIN(NODE) \
2470 (DECL_COMMON_CHECK (NODE)->decl_common.abstract_origin)
2472 /* Like DECL_ABSTRACT_ORIGIN, but returns NODE if there's no abstract
2474 #define DECL_ORIGIN(NODE) \
2475 (DECL_ABSTRACT_ORIGIN (NODE) ? DECL_ABSTRACT_ORIGIN (NODE) : (NODE))
2481 #define DECL_FROM_INLINE(NODE) \
2482 (DECL_ABSTRACT_ORIGIN (NODE) != NULL_TREE \
2483 && DECL_ABSTRACT_ORIGIN (NODE) != (NODE))
2486 #define DECL_ATTRIBUTES(NODE) \
2487 (DECL_COMMON_CHECK (NODE)->decl_common.attributes)
2499 #define DECL_INITIAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.initial)
2503 #define DECL_SIZE(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.size)
2505 #define DECL_SIZE_UNIT(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.size_unit)
2509 #define DECL_ALIGN(NODE) \
2510 (DECL_COMMON_CHECK (NODE)->decl_common.align \
2511 ? ((unsigned)1) << ((NODE)->decl_common.align - 1) : 0)
2512 /* Specify that DECL_ALIGN(NODE) is X. */
2513 #define SET_DECL_ALIGN(NODE, X) \
2514 (DECL_COMMON_CHECK (NODE)->decl_common.align = ffs_hwi (X))
2518 #define DECL_WARN_IF_NOT_ALIGN(NODE) \
2519 (DECL_COMMON_CHECK (NODE)->decl_common.warn_if_not_align \
2520 ? ((unsigned)1) << ((NODE)->decl_common.warn_if_not_align - 1) : 0)
2522 /* Specify that DECL_WARN_IF_NOT_ALIGN(NODE) is X. */
2523 #define SET_DECL_WARN_IF_NOT_ALIGN(NODE, X) \
2524 (DECL_COMMON_CHECK (NODE)->decl_common.warn_if_not_align = ffs_hwi (X))
2526 /* The alignment of NODE, in bytes. */
2527 #define DECL_ALIGN_UNIT(NODE) (DECL_ALIGN (NODE) / BITS_PER_UNIT)
2530 #define DECL_USER_ALIGN(NODE) \
2531 (DECL_COMMON_CHECK (NODE)->base.u.bits.user_align)
2535 #define DECL_MODE(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.mode)
2536 #define SET_DECL_MODE(NODE, MODE) \
2537 (DECL_COMMON_CHECK (NODE)->decl_common.mode = (MODE))
2543 #define DECL_UNCHECKED_FUNCTION_CODE(NODE) \
2544 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_code)
2558 #define DECL_FUNCTION_PERSONALITY(NODE) \
2559 (FUNCTION_DECL_CHECK (NODE)->function_decl.personality)
2565 #define DECL_IGNORED_P(NODE) \
2566 (DECL_COMMON_CHECK (NODE)->decl_common.ignored_flag)
2574 #define DECL_ABSTRACT_P(NODE) \
2575 (DECL_COMMON_CHECK (NODE)->decl_common.abstract_flag)
2578 #define DECL_LANG_SPECIFIC(NODE) \
2579 (DECL_COMMON_CHECK (NODE)->decl_common.lang_specific)
2583 this does not necessarily imply the entity represented by NODE
2588 #define DECL_EXTERNAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.decl_flag_1)
2597 #define DECL_NONLOCAL(NODE) \
2598 (DECL_COMMON_CHECK (NODE)->decl_common.nonlocal_flag)
2603 #define DECL_VIRTUAL_P(NODE) \
2604 (DECL_COMMON_CHECK (NODE)->decl_common.virtual_flag)
2607 #define DECL_ARTIFICIAL(NODE) \
2608 (DECL_COMMON_CHECK (NODE)->decl_common.artificial_flag)
2611 #define DECL_LANG_FLAG_0(NODE) \
2612 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_0)
2613 #define DECL_LANG_FLAG_1(NODE) \
2614 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_1)
2615 #define DECL_LANG_FLAG_2(NODE) \
2616 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_2)
2617 #define DECL_LANG_FLAG_3(NODE) \
2618 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_3)
2619 #define DECL_LANG_FLAG_4(NODE) \
2620 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_4)
2621 #define DECL_LANG_FLAG_5(NODE) \
2622 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_5)
2623 #define DECL_LANG_FLAG_6(NODE) \
2624 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_6)
2625 #define DECL_LANG_FLAG_7(NODE) \
2626 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_7)
2627 #define DECL_LANG_FLAG_8(NODE) \
2628 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_8)
2658 #define DECL_HAS_VALUE_EXPR_P(NODE) \
2659 (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, RESULT_DECL) \
2661 #define DECL_VALUE_EXPR(NODE) \
2662 (decl_value_expr_lookup (DECL_WRTL_CHECK (NODE)))
2663 #define SET_DECL_VALUE_EXPR(NODE, VAL) \
2664 (decl_value_expr_insert (DECL_WRTL_CHECK (NODE), VAL))
2669 #define DECL_RTL(NODE) \
2670 (DECL_WRTL_CHECK (NODE)->decl_with_rtl.rtl \
2671 ? (NODE)->decl_with_rtl.rtl \
2672 : (make_decl_rtl (NODE), (NODE)->decl_with_rtl.rtl))
2674 /* Set the DECL_RTL for NODE to RTL. */
2675 #define SET_DECL_RTL(NODE, RTL) set_decl_rtl (NODE, RTL)
2677 /* Returns nonzero if NODE is a tree node that can contain RTL. */
2678 #define HAS_RTL_P(NODE) (CODE_CONTAINS_STRUCT (TREE_CODE (NODE), TS_DECL_WRTL))
2680 /* Returns nonzero if the DECL_RTL for NODE has already been set. */
2681 #define DECL_RTL_SET_P(NODE) \
2682 (HAS_RTL_P (NODE) && DECL_WRTL_CHECK (NODE)->decl_with_rtl.rtl != NULL)
2690 /* The DECL_RTL for NODE, if it is set, or NULL, if it is not set. */
2691 #define DECL_RTL_IF_SET(NODE) (DECL_RTL_SET_P (NODE) ? DECL_RTL (NODE) : NULL)
2705 #define DECL_REGISTER(NODE) (DECL_WRTL_CHECK (NODE)->decl_common.decl_flag_0)
2710 #define DECL_FIELD_OFFSET(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.offset)
2716 #define DECL_FIELD_BIT_OFFSET(NODE) \
2717 (FIELD_DECL_CHECK (NODE)->field_decl.bit_offset)
2722 #define DECL_BIT_FIELD_TYPE(NODE) \
2723 (FIELD_DECL_CHECK (NODE)->field_decl.bit_field_type)
2727 #define DECL_BIT_FIELD_REPRESENTATIVE(NODE) \
2728 (FIELD_DECL_CHECK (NODE)->field_decl.qualifier)
2732 #define DECL_QUALIFIER(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.qualifier)
2738 #define DECL_OFFSET_ALIGN(NODE) \
2739 (((unsigned HOST_WIDE_INT)1) << FIELD_DECL_CHECK (NODE)->decl_common.off_align)
2741 /* Specify that DECL_OFFSET_ALIGN(NODE) is X. */
2742 #define SET_DECL_OFFSET_ALIGN(NODE, X) \
2743 (FIELD_DECL_CHECK (NODE)->decl_common.off_align = ffs_hwi (X) - 1)
2748 #define DECL_FCONTEXT(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.fcontext)
2751 #define DECL_PACKED(NODE) (FIELD_DECL_CHECK (NODE)->base.u.bits.packed_flag)
2757 #define DECL_FIELD_ABI_IGNORED(NODE) \
2758 (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_0)
2762 #define DECL_BIT_FIELD(NODE) (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_1)
2779 #define DECL_NONADDRESSABLE_P(NODE) \
2780 (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_2)
2783 #define DECL_PADDING_P(NODE) \
2784 (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_3)
2789 #define LABEL_DECL_UID(NODE) \
2790 (LABEL_DECL_CHECK (NODE)->label_decl.label_decl_uid)
2794 #define EH_LANDING_PAD_NR(NODE) \
2795 (LABEL_DECL_CHECK (NODE)->label_decl.eh_landing_pad_nr)
2799 #define DECL_ARG_TYPE(NODE) (PARM_DECL_CHECK (NODE)->decl_common.initial)
2803 #define DECL_INCOMING_RTL(NODE) \
2804 (PARM_DECL_CHECK (NODE)->parm_decl.incoming_rtl)
2808 #define DECL_IN_SYSTEM_HEADER(NODE) \
2809 (in_system_header_at (DECL_SOURCE_LOCATION (NODE)))
2813 #define DECL_DEFER_OUTPUT(NODE) \
2814 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.defer_output)
2818 #define DECL_IN_TEXT_SECTION(NODE) \
2819 (VAR_DECL_CHECK (NODE)->decl_with_vis.in_text_section)
2823 #define DECL_IN_CONSTANT_POOL(NODE) \
2824 (VAR_DECL_CHECK (NODE)->decl_with_vis.in_constant_pool)
2829 #define DECL_COMMON(NODE) \
2830 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.common_flag)
2834 #define DECL_HARD_REGISTER(NODE) \
2835 (VAR_DECL_CHECK (NODE)->decl_with_vis.hard_register)
2838 #define DECL_WEAK(NODE) (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.weak_flag)
2841 #define DECL_DLLIMPORT_P(NODE) \
2842 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.dllimport_flag)
2853 #define DECL_COMDAT(NODE) \
2854 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.comdat_flag)
2856 #define DECL_COMDAT_GROUP(NODE) \
2857 decl_comdat_group (NODE)
2861 #define DECL_ONE_ONLY(NODE) (DECL_COMDAT_GROUP (NODE) != NULL_TREE \
2862 && (TREE_PUBLIC (NODE) || DECL_EXTERNAL (NODE)))
2871 #define DECL_ASSEMBLER_NAME(NODE) decl_assembler_name (NODE)
2874 #define DECL_ASSEMBLER_NAME_RAW(NODE) \
2875 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.assembler_name)
2877 /* Return true if NODE is a NODE that can contain a DECL_ASSEMBLER_NAME.
2879 #define HAS_DECL_ASSEMBLER_NAME_P(NODE) \
2880 (CODE_CONTAINS_STRUCT (TREE_CODE (NODE), TS_DECL_WITH_VIS))
2882 /* Returns nonzero if the DECL_ASSEMBLER_NAME for NODE has been set. If zero,
2883 the NODE might still have a DECL_ASSEMBLER_NAME -- it just hasn't been set
2885 #define DECL_ASSEMBLER_NAME_SET_P(NODE) \
2886 (DECL_ASSEMBLER_NAME_RAW (NODE) != NULL_TREE)
2888 /* Set the DECL_ASSEMBLER_NAME for NODE to NAME. */
2889 #define SET_DECL_ASSEMBLER_NAME(NODE, NAME) \
2890 overwrite_decl_assembler_name (NODE, NAME)
2908 #define DECL_SECTION_NAME(NODE) decl_section_name (NODE)
2912 #define DECL_SEEN_IN_BIND_EXPR_P(NODE) \
2913 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.seen_in_bind_expr)
2916 #define DECL_VISIBILITY(NODE) \
2917 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.visibility)
2921 #define DECL_VISIBILITY_SPECIFIED(NODE) \
2922 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.visibility_specified)
2926 #define DECL_TLS_MODEL(NODE) decl_tls_model (NODE)
2930 #define DECL_THREAD_LOCAL_P(NODE) \
2931 ((TREE_STATIC (NODE) || DECL_EXTERNAL (NODE)) && decl_tls_model (NODE) >= TLS_MODEL_REAL)
2936 #define DECL_HAS_INIT_PRIORITY_P(NODE) \
2937 (VAR_DECL_CHECK (NODE)->decl_with_vis.init_priority_p)
2943 #define DECL_HAS_DEBUG_EXPR_P(NODE) \
2944 (VAR_DECL_CHECK (NODE)->decl_common.debug_expr_is_from)
2945 #define DECL_DEBUG_EXPR(NODE) \
2946 (decl_debug_expr_lookup (VAR_DECL_CHECK (NODE)))
2948 #define SET_DECL_DEBUG_EXPR(NODE, VAL) \
2949 (decl_debug_expr_insert (VAR_DECL_CHECK (NODE), VAL))
2957 NODE. */
2958 #define DECL_INIT_PRIORITY(NODE) \
2959 (decl_init_priority_lookup (NODE))
2960 /* Set the initialization priority for NODE to VAL. */
2961 #define SET_DECL_INIT_PRIORITY(NODE, VAL) \
2962 (decl_init_priority_insert (NODE, VAL))
2964 /* For a FUNCTION_DECL the finalization priority of NODE. */
2965 #define DECL_FINI_PRIORITY(NODE) \
2966 (decl_fini_priority_lookup (NODE))
2967 /* Set the finalization priority for NODE to VAL. */
2968 #define SET_DECL_FINI_PRIORITY(NODE, VAL) \
2969 (decl_fini_priority_insert (NODE, VAL))
2983 #define VAR_DECL_IS_VIRTUAL_OPERAND(NODE) \
2984 (VAR_DECL_CHECK (NODE)->base.u.bits.saturating_flag)
2987 #define DECL_NONLOCAL_FRAME(NODE) \
2988 (VAR_DECL_CHECK (NODE)->base.default_def_flag)
2991 #define DECL_NONALIASED(NODE) \
2992 (VAR_DECL_CHECK (NODE)->base.nothrow_flag)
2996 #define DECL_RESULT_FLD(NODE) \
2997 (DECL_NON_COMMON_CHECK (NODE)->decl_non_common.result)
3006 #define DECL_VINDEX(NODE) \
3007 (FUNCTION_DECL_CHECK (NODE)->function_decl.vindex)
3010 #define DECL_RESULT(NODE) (FUNCTION_DECL_CHECK (NODE)->decl_non_common.result)
3013 #define DECL_UNINLINABLE(NODE) \
3014 (FUNCTION_DECL_CHECK (NODE)->function_decl.uninlinable)
3018 #define DECL_SAVED_TREE(NODE) \
3019 (FUNCTION_DECL_CHECK (NODE)->function_decl.saved_tree)
3024 #define DECL_IS_MALLOC(NODE) \
3025 (FUNCTION_DECL_CHECK (NODE)->function_decl.malloc_flag)
3028 #define FUNCTION_DECL_DECL_TYPE(NODE) \
3029 (NODE->function_decl.decl_type)
3049 #define DECL_IS_REPLACEABLE_OPERATOR(NODE)\
3050 (FUNCTION_DECL_CHECK (NODE)->function_decl.replaceable_operator)
3055 #define DECL_IS_OPERATOR_NEW_P(NODE) \
3056 (FUNCTION_DECL_CHECK (NODE)->function_decl.decl_type == OPERATOR_NEW)
3058 #define DECL_IS_REPLACEABLE_OPERATOR_NEW_P(NODE) \
3059 (DECL_IS_OPERATOR_NEW_P (NODE) && DECL_IS_REPLACEABLE_OPERATOR (NODE))
3061 #define DECL_SET_IS_OPERATOR_NEW(NODE, VAL) \
3062 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), OPERATOR_NEW, VAL)
3066 #define DECL_IS_OPERATOR_DELETE_P(NODE) \
3067 (FUNCTION_DECL_CHECK (NODE)->function_decl.decl_type == OPERATOR_DELETE)
3069 #define DECL_IS_REPLACEABLE_OPERATOR_DELETE_P(NODE) \
3070 (DECL_IS_OPERATOR_DELETE_P (NODE) && DECL_IS_REPLACEABLE_OPERATOR (NODE))
3072 #define DECL_SET_IS_OPERATOR_DELETE(NODE, VAL) \
3073 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), OPERATOR_DELETE, VAL)
3077 #define DECL_IS_RETURNS_TWICE(NODE) \
3078 (FUNCTION_DECL_CHECK (NODE)->function_decl.returns_twice_flag)
3082 #define DECL_PURE_P(NODE) (FUNCTION_DECL_CHECK (NODE)->function_decl.pure_flag)
3090 #define DECL_LOOPING_CONST_OR_PURE_P(NODE) \
3091 (FUNCTION_DECL_CHECK (NODE)->function_decl.looping_const_or_pure_flag)
3096 #define DECL_IS_NOVOPS(NODE) \
3097 (FUNCTION_DECL_CHECK (NODE)->function_decl.novops_flag)
3101 #define DECL_STATIC_CONSTRUCTOR(NODE) \
3102 (FUNCTION_DECL_CHECK (NODE)->function_decl.static_ctor_flag)
3104 #define DECL_STATIC_DESTRUCTOR(NODE) \
3105 (FUNCTION_DECL_CHECK (NODE)->function_decl.static_dtor_flag)
3109 #define DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT(NODE) \
3110 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_instrument_function_entry_exit)
3114 #define DECL_NO_LIMIT_STACK(NODE) \
3115 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_limit_stack)
3118 #define DECL_STATIC_CHAIN(NODE) \
3119 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.regdecl_flag)
3130 #define DECL_DECLARED_INLINE_P(NODE) \
3131 (FUNCTION_DECL_CHECK (NODE)->function_decl.declared_inline_flag)
3135 #define DECL_NO_INLINE_WARNING_P(NODE) \
3136 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_inline_warning_flag)
3165 #define DECL_DISREGARD_INLINE_LIMITS(NODE) \
3166 (FUNCTION_DECL_CHECK (NODE)->function_decl.disregard_inline_limits)
3172 #define DECL_HAS_DEBUG_ARGS_P(NODE) \
3173 (FUNCTION_DECL_CHECK (NODE)->function_decl.has_debug_args_flag)
3177 #define DECL_STRUCT_FUNCTION(NODE) \
3178 (FUNCTION_DECL_CHECK (NODE)->function_decl.f)
3181 #define DECL_BUILT_IN_CLASS(NODE) \
3182 ((built_in_class) FUNCTION_DECL_CHECK (NODE)->function_decl.built_in_class)
3185 #define DECL_ARGUMENTS(NODE) \
3186 (FUNCTION_DECL_CHECK (NODE)->function_decl.arguments)
3190 #define DECL_FUNCTION_SPECIFIC_TARGET(NODE) \
3191 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_specific_target)
3195 #define DECL_FUNCTION_SPECIFIC_OPTIMIZATION(NODE) \
3196 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_specific_optimization)
3201 #define DECL_FUNCTION_VERSIONED(NODE)\
3202 (FUNCTION_DECL_CHECK (NODE)->function_decl.versioned_function)
3208 #define DECL_CXX_CONSTRUCTOR_P(NODE)\
3209 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.cxx_constructor)
3213 #define DECL_CXX_DESTRUCTOR_P(NODE)\
3214 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.cxx_destructor)
3217 #define DECL_LAMBDA_FUNCTION_P(NODE) \
3218 (FUNCTION_DECL_CHECK (NODE)->function_decl.decl_type == LAMBDA_FUNCTION)
3220 #define DECL_SET_LAMBDA_FUNCTION(NODE, VAL) \
3221 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), LAMBDA_FUNCTION, VAL)
3225 #define DECL_FINAL_P(NODE)\
3226 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.final)
3229 #define TRANSLATION_UNIT_LANGUAGE(NODE) \
3230 (TRANSLATION_UNIT_DECL_CHECK (NODE)->translation_unit_decl.language)
3235 #define DECL_ORIGINAL_TYPE(NODE) \
3236 (TYPE_DECL_CHECK (NODE)->decl_non_common.result)
3241 #define TYPE_DECL_SUPPRESS_DEBUG(NODE) \
3242 (TYPE_DECL_CHECK (NODE)->decl_common.decl_flag_1)
3246 #define IMPORTED_DECL_ASSOCIATED_DECL(NODE) \
3247 (DECL_INITIAL (IMPORTED_DECL_CHECK (NODE)))
3251 #define NAMELIST_DECL_ASSOCIATED_DECL(NODE) \
3252 (DECL_INITIAL (NODE))
3260 #define STATEMENT_LIST_HEAD(NODE) \
3261 (STATEMENT_LIST_CHECK (NODE)->stmt_list.head)
3262 #define STATEMENT_LIST_TAIL(NODE) \
3263 (STATEMENT_LIST_CHECK (NODE)->stmt_list.tail)
3265 #define TREE_OPTIMIZATION(NODE) \
3266 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.opts)
3268 #define TREE_OPTIMIZATION_OPTABS(NODE) \
3269 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.optabs)
3271 #define TREE_OPTIMIZATION_BASE_OPTABS(NODE) \
3272 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.base_optabs)
3277 #define TREE_TARGET_OPTION(NODE) \
3278 (TARGET_OPTION_NODE_CHECK (NODE)->target_option.opts)
3280 #define TREE_TARGET_GLOBALS(NODE) \
3281 (TARGET_OPTION_NODE_CHECK (NODE)->target_option.globals)
3773 /* Compute the number of operands in an expression node NODE. For
3846 /* Return the number of elements in the VECTOR_TYPE given by NODE. */
3867 /* Set the number of elements in VECTOR_TYPE NODE to SUBPARTS, which must
3980 #define EXPR_LOCATION_WRAPPER_P(NODE) \
3981 (TREE_CHECK2(NODE, NON_LVALUE_EXPR, VIEW_CONVERT_EXPR)->base.public_flag)
4209 #define MAIN_NAME_P(NODE) \
4210 (IDENTIFIER_NODE_CHECK (NODE) == main_identifier_node)
4243 /* True if NODE is an erroneous expression. */
4245 #define error_operand_p(NODE) \
4246 ((NODE) == error_mark_node \
4247 || ((NODE) && TREE_TYPE ((NODE)) == error_mark_node))
6237 /* Return true if a FUNCTION_DECL NODE is a GCC built-in function.
6249 /* Return true if a FUNCTION_DECL NODE is a GCC built-in function
6258 /* Return true if a FUNCTION_DECL NODE is a GCC built-in function
6268 /* Return true if a FUNCTION_DECL NODE is a GCC built-in function