149#define MARK_TS_BASE(C) \
150 (tree_contains_struct[C][TS_BASE] = true)
152#define MARK_TS_TYPED(C) \
154 tree_contains_struct[C][TS_TYPED] = true)
156#define MARK_TS_COMMON(C) \
157 (MARK_TS_TYPED (C), \
158 tree_contains_struct[C][TS_COMMON] = true)
160#define MARK_TS_TYPE_COMMON(C) \
161 (MARK_TS_COMMON (C), \
162 tree_contains_struct[C][TS_TYPE_COMMON] = true)
164#define MARK_TS_TYPE_WITH_LANG_SPECIFIC(C) \
165 (MARK_TS_TYPE_COMMON (C), \
166 tree_contains_struct[C][TS_TYPE_WITH_LANG_SPECIFIC] = true)
168#define MARK_TS_TYPE_NON_COMMON(C) \
169 (MARK_TS_TYPE_WITH_LANG_SPECIFIC (C), \
170 tree_contains_struct[C][TS_TYPE_NON_COMMON] = true) \
172#define MARK_TS_DECL_MINIMAL(C) \
173 (MARK_TS_COMMON (C), \
174 tree_contains_struct[C][TS_DECL_MINIMAL] = true)
176#define MARK_TS_DECL_COMMON(C) \
177 (MARK_TS_DECL_MINIMAL (C), \
178 tree_contains_struct[C][TS_DECL_COMMON] = true)
180#define MARK_TS_DECL_WRTL(C) \
181 (MARK_TS_DECL_COMMON (C), \
182 tree_contains_struct[C][TS_DECL_WRTL] = true)
184#define MARK_TS_DECL_WITH_VIS(C) \
185 (MARK_TS_DECL_WRTL (C), \
186 tree_contains_struct[C][TS_DECL_WITH_VIS] = true)
188#define MARK_TS_DECL_NON_COMMON(C) \
189 (MARK_TS_DECL_WITH_VIS (C), \
190 tree_contains_struct[C][TS_DECL_NON_COMMON] = true)
192#define MARK_TS_EXP(C) \
193 (MARK_TS_TYPED (C), \
194 tree_contains_struct[C][TS_EXP] = true)
198#define TREE_CODE_CLASS_STRING(CLASS)\
199 tree_code_class_strings[(int) (CLASS)]
201#if __cpp_inline_variables < 201606L
202#define TREE_CODE_CLASS(CODE) \
203 tree_code_type_tmpl <0>::tree_code_type[(int) (CODE)]
205#define TREE_CODE_CLASS(CODE) tree_code_type[(int) (CODE)]
210#define EXCEPTIONAL_CLASS_P(NODE)\
211 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_exceptional)
215#define CONSTANT_CLASS_P(NODE)\
216 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_constant)
221#define CONSTANT_CLASS_OR_WRAPPER_P(NODE)\
222 (CONSTANT_CLASS_P (tree_strip_any_location_wrapper (NODE)))
227 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_type)
232 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_declaration)
236 (TREE_CODE (NODE) == VAR_DECL)
240#define VAR_OR_FUNCTION_DECL_P(DECL)\
241 (TREE_CODE (DECL) == VAR_DECL || TREE_CODE (DECL) == FUNCTION_DECL)
246#define INDIRECT_REF_P(NODE)\
247 (TREE_CODE (NODE) == INDIRECT_REF)
251#define REFERENCE_CLASS_P(NODE)\
252 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_reference)
256#define COMPARISON_CLASS_P(NODE)\
257 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_comparison)
261#define UNARY_CLASS_P(NODE)\
262 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_unary)
266#define BINARY_CLASS_P(NODE)\
267 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_binary)
271#define STATEMENT_CLASS_P(NODE)\
272 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_statement)
277#define VL_EXP_CLASS_P(NODE)\
278 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_vl_exp)
282#define EXPRESSION_CLASS_P(NODE)\
283 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_expression)
287#define IS_TYPE_OR_DECL_P(NODE)\
288 (TYPE_P (NODE) || DECL_P (NODE))
293#define IS_EXPR_CODE_CLASS(CLASS)\
294 ((CLASS) >= tcc_reference && (CLASS) <= tcc_expression)
298#define EXPR_P(NODE) IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (NODE)))
300#if __cpp_inline_variables < 201606L
301#define TREE_CODE_LENGTH(CODE) \
302 tree_code_length_tmpl <0>::tree_code_length[(int) (CODE)]
304#define TREE_CODE_LENGTH(CODE) tree_code_length[(int) (CODE)]
310#define CASE_FLT_FN(FN) case FN: case FN##F: case FN##L
311#define CASE_FLT_FN_FLOATN_NX(FN) \
312 case FN##F16: case FN##F32: case FN##F64: case FN##F128: \
313 case FN##F32X: case FN##F64X: case FN##F128X
314#define CASE_FLT_FN_REENT(FN) case FN##_R: case FN##F_R: case FN##L_R
315#define CASE_INT_FN(FN) case FN: case FN##L: case FN##LL: case FN##IMAX
317#define NULL_TREE (tree) NULL
324#define TREE_CODE(NODE) ((enum tree_code) (NODE)->base.code)
325#define TREE_SET_CODE(NODE, VALUE) ((NODE)->base.code = (VALUE))
329#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007)
331#define TREE_CHECK(T, CODE) \
332(tree_check ((T), __FILE__, __LINE__, __FUNCTION__, (CODE)))
334#define TREE_NOT_CHECK(T, CODE) \
335(tree_not_check ((T), __FILE__, __LINE__, __FUNCTION__, (CODE)))
337#define TREE_CHECK2(T, CODE1, CODE2) \
338(tree_check2 ((T), __FILE__, __LINE__, __FUNCTION__, (CODE1), (CODE2)))
340#define TREE_NOT_CHECK2(T, CODE1, CODE2) \
341(tree_not_check2 ((T), __FILE__, __LINE__, __FUNCTION__, (CODE1), (CODE2)))
343#define TREE_CHECK3(T, CODE1, CODE2, CODE3) \
344(tree_check3 ((T), __FILE__, __LINE__, __FUNCTION__, (CODE1), (CODE2), (CODE3)))
346#define TREE_NOT_CHECK3(T, CODE1, CODE2, CODE3) \
347(tree_not_check3 ((T), __FILE__, __LINE__, __FUNCTION__, \
348 (CODE1), (CODE2), (CODE3)))
350#define TREE_CHECK4(T, CODE1, CODE2, CODE3, CODE4) \
351(tree_check4 ((T), __FILE__, __LINE__, __FUNCTION__, \
352 (CODE1), (CODE2), (CODE3), (CODE4)))
354#define TREE_NOT_CHECK4(T, CODE1, CODE2, CODE3, CODE4) \
355(tree_not_check4 ((T), __FILE__, __LINE__, __FUNCTION__, \
356 (CODE1), (CODE2), (CODE3), (CODE4)))
358#define TREE_CHECK5(T, CODE1, CODE2, CODE3, CODE4, CODE5) \
359(tree_check5 ((T), __FILE__, __LINE__, __FUNCTION__, \
360 (CODE1), (CODE2), (CODE3), (CODE4), (CODE5)))
362#define TREE_NOT_CHECK5(T, CODE1, CODE2, CODE3, CODE4, CODE5) \
363(tree_not_check5 ((T), __FILE__, __LINE__, __FUNCTION__, \
364 (CODE1), (CODE2), (CODE3), (CODE4), (CODE5)))
366#define TREE_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) \
367(tree_check6 ((T), __FILE__, __LINE__, __FUNCTION__, \
368 (CODE1), (CODE2), (CODE3), (CODE4), (CODE5), (CODE6)))
370#define TREE_NOT_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) \
371(tree_not_check6 ((T), __FILE__, __LINE__, __FUNCTION__, \
372 (CODE1), (CODE2), (CODE3), (CODE4), (CODE5), (CODE6)))
374#define CONTAINS_STRUCT_CHECK(T, STRUCT) \
375(contains_struct_check ((T), (STRUCT), __FILE__, __LINE__, __FUNCTION__))
377#define TREE_CLASS_CHECK(T, CLASS) \
378(tree_class_check ((T), (CLASS), __FILE__, __LINE__, __FUNCTION__))
380#define TREE_RANGE_CHECK(T, CODE1, CODE2) \
381(tree_range_check ((T), (CODE1), (CODE2), __FILE__, __LINE__, __FUNCTION__))
383#define OMP_CLAUSE_SUBCODE_CHECK(T, CODE) \
384(omp_clause_subcode_check ((T), (CODE), __FILE__, __LINE__, __FUNCTION__))
386#define OMP_CLAUSE_RANGE_CHECK(T, CODE1, CODE2) \
387(omp_clause_range_check ((T), (CODE1), (CODE2), \
388 __FILE__, __LINE__, __FUNCTION__))
391#define EXPR_CHECK(T) \
392(expr_check ((T), __FILE__, __LINE__, __FUNCTION__))
395#define NON_TYPE_CHECK(T) \
396(non_type_check ((T), __FILE__, __LINE__, __FUNCTION__))
399#define ANY_INTEGRAL_TYPE_CHECK(T) \
400(any_integral_type_check ((T), __FILE__, __LINE__, __FUNCTION__))
402#define TREE_INT_CST_ELT_CHECK(T, I) \
403(*tree_int_cst_elt_check ((T), (I), __FILE__, __LINE__, __FUNCTION__))
405#define TREE_VEC_ELT_CHECK(T, I) \
406(*(CONST_CAST2 (tree *, typeof (T)*, \
407 tree_vec_elt_check ((T), (I), __FILE__, __LINE__, __FUNCTION__))))
409#define OMP_CLAUSE_ELT_CHECK(T, I) \
410(*(omp_clause_elt_check ((T), (I), __FILE__, __LINE__, __FUNCTION__)))
413#define TREE_OPERAND_CHECK(T, I) \
414(*(CONST_CAST2 (tree*, typeof (T)*, \
415 tree_operand_check ((T), (I), __FILE__, __LINE__, __FUNCTION__))))
417#define TREE_OPERAND_CHECK_CODE(T, CODE, I) \
418(*(tree_operand_check_code ((T), (CODE), (I), \
419 __FILE__, __LINE__, __FUNCTION__)))
430#define TREE_CHAIN(NODE) \
431(CONTAINS_STRUCT_CHECK (NODE, TS_COMMON)->common.chain)
437#define TREE_TYPE(NODE) \
438(CONTAINS_STRUCT_CHECK (NODE, TS_TYPED)->typed.type)
440extern void tree_contains_struct_check_failed (
const_tree,
442 const char *,
int,
const char *)
445extern void tree_check_failed (
const_tree,
const char *,
int,
const char *,
447extern
void tree_not_check_failed (
const_tree, const
char *,
int, const
char *,
450 const
char *,
int, const
char *)
452extern
void tree_range_check_failed (
const_tree, const
char *,
int,
456extern
void tree_not_class_check_failed (
const_tree,
458 const
char *,
int, const
char *)
460extern
void tree_int_cst_elt_check_failed (
int,
int, const
char *,
463extern
void tree_vec_elt_check_failed (
int,
int, const
char *,
466extern
void phi_node_elt_check_failed (
int,
int, const
char *,
469extern
void tree_operand_check_failed (
int,
const_tree,
470 const
char *,
int, const
char *)
472extern
void omp_clause_check_failed (
const_tree, const
char *,
int,
475extern
void omp_clause_operand_check_failed (
int,
const_tree, const
char *,
478extern
void omp_clause_range_check_failed (
const_tree, const
char *,
int,
485#define CONTAINS_STRUCT_CHECK(T, ENUM) (T)
486#define TREE_CHECK(T, CODE) (T)
487#define TREE_NOT_CHECK(T, CODE) (T)
488#define TREE_CHECK2(T, CODE1, CODE2) (T)
489#define TREE_NOT_CHECK2(T, CODE1, CODE2) (T)
490#define TREE_CHECK3(T, CODE1, CODE2, CODE3) (T)
491#define TREE_NOT_CHECK3(T, CODE1, CODE2, CODE3) (T)
492#define TREE_CHECK4(T, CODE1, CODE2, CODE3, CODE4) (T)
493#define TREE_NOT_CHECK4(T, CODE1, CODE2, CODE3, CODE4) (T)
494#define TREE_CHECK5(T, CODE1, CODE2, CODE3, CODE4, CODE5) (T)
495#define TREE_NOT_CHECK5(T, CODE1, CODE2, CODE3, CODE4, CODE5) (T)
496#define TREE_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) (T)
497#define TREE_NOT_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) (T)
498#define TREE_CLASS_CHECK(T, CODE) (T)
499#define TREE_RANGE_CHECK(T, CODE1, CODE2) (T)
500#define EXPR_CHECK(T) (T)
501#define NON_TYPE_CHECK(T) (T)
502#define TREE_INT_CST_ELT_CHECK(T, I) ((T)->int_cst.val[I])
503#define TREE_VEC_ELT_CHECK(T, I) ((T)->vec.a[I])
504#define TREE_OPERAND_CHECK(T, I) ((T)->exp.operands[I])
505#define TREE_OPERAND_CHECK_CODE(T, CODE, I) ((T)->exp.operands[I])
506#define OMP_CLAUSE_ELT_CHECK(T, i) ((T)->omp_clause.ops[i])
507#define OMP_CLAUSE_RANGE_CHECK(T, CODE1, CODE2) (T)
508#define OMP_CLAUSE_SUBCODE_CHECK(T, CODE) (T)
509#define ANY_INTEGRAL_TYPE_CHECK(T) (T)
511#define TREE_CHAIN(NODE) ((NODE)->common.chain)
512#define TREE_TYPE(NODE) ((NODE)->typed.type)
516#define TREE_BLOCK(NODE) (tree_block (NODE))
517#define TREE_SET_BLOCK(T, B) (tree_set_block ((T), (B)))
519#include "tree-check.h"
521#define TYPE_CHECK(T) TREE_CLASS_CHECK (T, tcc_type)
522#define DECL_MINIMAL_CHECK(T) CONTAINS_STRUCT_CHECK (T, TS_DECL_MINIMAL)
523#define DECL_COMMON_CHECK(T) CONTAINS_STRUCT_CHECK (T, TS_DECL_COMMON)
524#define DECL_WRTL_CHECK(T) CONTAINS_STRUCT_CHECK (T, TS_DECL_WRTL)
525#define DECL_WITH_VIS_CHECK(T) CONTAINS_STRUCT_CHECK (T, TS_DECL_WITH_VIS)
526#define DECL_NON_COMMON_CHECK(T) CONTAINS_STRUCT_CHECK (T, TS_DECL_NON_COMMON)
527#define CST_CHECK(T) TREE_CLASS_CHECK (T, tcc_constant)
528#define STMT_CHECK(T) TREE_CLASS_CHECK (T, tcc_statement)
529#define VL_EXP_CHECK(T) TREE_CLASS_CHECK (T, tcc_vl_exp)
530#define FUNC_OR_METHOD_CHECK(T) TREE_CHECK2 (T, FUNCTION_TYPE, METHOD_TYPE)
531#define PTR_OR_REF_CHECK(T) TREE_CHECK2 (T, POINTER_TYPE, REFERENCE_TYPE)
533#define RECORD_OR_UNION_CHECK(T) \
534 TREE_CHECK3 (T, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE)
535#define NOT_RECORD_OR_UNION_CHECK(T) \
536 TREE_NOT_CHECK3 (T, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE)
537#define ARRAY_OR_INTEGER_TYPE_CHECK(T) \
538 TREE_CHECK2 (T, ARRAY_TYPE, INTEGER_TYPE)
540#define NUMERICAL_TYPE_CHECK(T) \
541 TREE_CHECK6 (T, INTEGER_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, REAL_TYPE, \
542 FIXED_POINT_TYPE, BITINT_TYPE)
546#define TYPE_HASH(TYPE) (TYPE_UID (TYPE))
550#define TREE_HASH(NODE) ((size_t) (NODE) & 0777777)
553#define CONVERT_EXPR_CODE_P(CODE) \
554 ((CODE) == NOP_EXPR || (CODE) == CONVERT_EXPR)
557#define CONVERT_EXPR_P(EXP) CONVERT_EXPR_CODE_P (TREE_CODE (EXP))
561#define CASE_CONVERT \
569#define STRIP_NOPS(EXP) \
570 (EXP) = tree_strip_nop_conversions (CONST_CAST_TREE (EXP))
574#define STRIP_SIGN_NOPS(EXP) \
575 (EXP) = tree_strip_sign_nop_conversions (CONST_CAST_TREE (EXP))
579#define STRIP_TYPE_NOPS(EXP) \
580 while ((CONVERT_EXPR_P (EXP) \
581 || TREE_CODE (EXP) == NON_LVALUE_EXPR) \
582 && TREE_OPERAND (EXP, 0) != error_mark_node \
583 && (TREE_TYPE (EXP) \
584 == TREE_TYPE (TREE_OPERAND (EXP, 0)))) \
585 (EXP) = TREE_OPERAND (EXP, 0)
590#define STRIP_USELESS_TYPE_CONVERSION(EXP) \
591 (EXP) = tree_ssa_strip_useless_type_conversions (EXP)
596#define STRIP_ANY_LOCATION_WRAPPER(EXP) \
597 (EXP) = tree_strip_any_location_wrapper (CONST_CAST_TREE (EXP))
601#define VECTOR_TYPE_P(TYPE) (TREE_CODE (TYPE) == VECTOR_TYPE)
605#define VECTOR_BOOLEAN_TYPE_P(TYPE) \
606 (TREE_CODE (TYPE) == VECTOR_TYPE \
607 && TREE_CODE (TREE_TYPE (TYPE)) == BOOLEAN_TYPE)
613#define INTEGRAL_TYPE_P(TYPE) \
614 (TREE_CODE (TYPE) == ENUMERAL_TYPE \
615 || TREE_CODE (TYPE) == BOOLEAN_TYPE \
616 || TREE_CODE (TYPE) == INTEGER_TYPE \
617 || TREE_CODE (TYPE) == BITINT_TYPE)
622#define ANY_INTEGRAL_TYPE_P(TYPE) \
623 (INTEGRAL_TYPE_P (TYPE) \
624 || ((TREE_CODE (TYPE) == COMPLEX_TYPE \
625 || VECTOR_TYPE_P (TYPE)) \
626 && INTEGRAL_TYPE_P (TREE_TYPE (TYPE))))
630#define BITINT_TYPE_P(TYPE) (TREE_CODE (TYPE) == BITINT_TYPE)
634#define NON_SAT_FIXED_POINT_TYPE_P(TYPE) \
635 (TREE_CODE (TYPE) == FIXED_POINT_TYPE && !TYPE_SATURATING (TYPE))
639#define SAT_FIXED_POINT_TYPE_P(TYPE) \
640 (TREE_CODE (TYPE) == FIXED_POINT_TYPE && TYPE_SATURATING (TYPE))
644#define FIXED_POINT_TYPE_P(TYPE) (TREE_CODE (TYPE) == FIXED_POINT_TYPE)
648#define SCALAR_FLOAT_TYPE_P(TYPE) (TREE_CODE (TYPE) == REAL_TYPE)
652#define COMPLEX_FLOAT_TYPE_P(TYPE) \
653 (TREE_CODE (TYPE) == COMPLEX_TYPE \
654 && TREE_CODE (TREE_TYPE (TYPE)) == REAL_TYPE)
658#define VECTOR_INTEGER_TYPE_P(TYPE) \
659 (VECTOR_TYPE_P (TYPE) \
660 && TREE_CODE (TREE_TYPE (TYPE)) == INTEGER_TYPE)
665#define VECTOR_FLOAT_TYPE_P(TYPE) \
666 (VECTOR_TYPE_P (TYPE) \
667 && TREE_CODE (TREE_TYPE (TYPE)) == REAL_TYPE)
673#define FLOAT_TYPE_P(TYPE) \
674 (SCALAR_FLOAT_TYPE_P (TYPE) \
675 || ((TREE_CODE (TYPE) == COMPLEX_TYPE \
676 || VECTOR_TYPE_P (TYPE)) \
677 && SCALAR_FLOAT_TYPE_P (TREE_TYPE (TYPE))))
680#define DECIMAL_FLOAT_TYPE_P(TYPE) \
681 (SCALAR_FLOAT_TYPE_P (TYPE) \
682 && DECIMAL_FLOAT_MODE_P (TYPE_MODE (TYPE)))
685#define RECORD_OR_UNION_TYPE_P(TYPE) \
686 (TREE_CODE (TYPE) == RECORD_TYPE \
687 || TREE_CODE (TYPE) == UNION_TYPE \
688 || TREE_CODE (TYPE) == QUAL_UNION_TYPE)
693#define AGGREGATE_TYPE_P(TYPE) \
694 (TREE_CODE (TYPE) == ARRAY_TYPE || RECORD_OR_UNION_TYPE_P (TYPE))
700#define POINTER_TYPE_P(TYPE) \
701 (TREE_CODE (TYPE) == POINTER_TYPE || TREE_CODE (TYPE) == REFERENCE_TYPE)
704#define FUNCTION_POINTER_TYPE_P(TYPE) \
705 (POINTER_TYPE_P (TYPE) && TREE_CODE (TREE_TYPE (TYPE)) == FUNCTION_TYPE)
708#define COMPLETE_TYPE_P(NODE) (TYPE_SIZE (NODE) != NULL_TREE)
711#define VOID_TYPE_P(NODE) (TREE_CODE (NODE) == VOID_TYPE)
714#define COMPLETE_OR_VOID_TYPE_P(NODE) \
715 (COMPLETE_TYPE_P (NODE) || VOID_TYPE_P (NODE))
718#define COMPLETE_OR_UNBOUND_ARRAY_TYPE_P(NODE) \
719 (COMPLETE_TYPE_P (TREE_CODE (NODE) == ARRAY_TYPE ? TREE_TYPE (NODE) : (NODE)))
721#define FUNC_OR_METHOD_TYPE_P(NODE) \
722 (TREE_CODE (NODE) == FUNCTION_TYPE || TREE_CODE (NODE) == METHOD_TYPE)
724#define OPAQUE_TYPE_P(NODE) \
725 (TREE_CODE (NODE) == OPAQUE_TYPE)
744#define TREE_ADDRESSABLE(NODE) ((NODE)->base.addressable_flag)
749#define CALL_EXPR_TAILCALL(NODE) \
750 (CALL_EXPR_CHECK (NODE)->base.addressable_flag)
754#define CALL_EXPR_MUST_TAIL_CALL(NODE) \
755 (CALL_EXPR_CHECK (NODE)->base.static_flag)
759#define CASE_LOW_SEEN(NODE) \
760 (CASE_LABEL_EXPR_CHECK (NODE)->base.addressable_flag)
762#define PREDICT_EXPR_OUTCOME(NODE) \
763 ((enum prediction) (PREDICT_EXPR_CHECK (NODE)->base.addressable_flag))
764#define SET_PREDICT_EXPR_OUTCOME(NODE, OUTCOME) \
765 (PREDICT_EXPR_CHECK (NODE)->base.addressable_flag = (int) OUTCOME)
766#define PREDICT_EXPR_PREDICTOR(NODE) \
767 ((enum br_predictor)tree_to_shwi (TREE_OPERAND (PREDICT_EXPR_CHECK (NODE), 0)))
772#define TREE_STATIC(NODE) ((NODE)->base.static_flag)
775#define TREE_NO_TRAMPOLINE(NODE) (ADDR_EXPR_CHECK (NODE)->base.static_flag)
780#define CLEANUP_EH_ONLY(NODE) ((NODE)->base.static_flag)
784#define TRY_CATCH_IS_CLEANUP(NODE) \
785 (TRY_CATCH_EXPR_CHECK (NODE)->base.static_flag)
789#define CASE_HIGH_SEEN(NODE) \
790 (CASE_LABEL_EXPR_CHECK (NODE)->base.static_flag)
793#define ENUM_IS_SCOPED(NODE) (ENUMERAL_TYPE_CHECK (NODE)->base.static_flag)
796#define ENUM_IS_OPAQUE(NODE) (ENUMERAL_TYPE_CHECK (NODE)->base.private_flag)
803#define TREE_NO_WARNING(NODE) ((NODE)->base.nowarning_flag)
807#define TRANSLATION_UNIT_WARN_EMPTY_P(NODE) \
808 (TRANSLATION_UNIT_DECL_CHECK (NODE)->decl_common.decl_flag_0)
811#define TYPE_EMPTY_P(NODE) (TYPE_CHECK (NODE)->type_common.empty_flag)
814#define TYPE_ARTIFICIAL(NODE) (TYPE_CHECK (NODE)->base.nowarning_flag)
819#define TYPE_INDIVISIBLE_P(NODE) (TYPE_CHECK (NODE)->type_common.indivisible_p)
824#define TYPE_NO_NAMED_ARGS_STDARG_P(NODE) \
825 (FUNC_OR_METHOD_CHECK (NODE)->type_common.no_named_args_stdarg_p)
829#define TYPE_INCLUDES_FLEXARRAY(NODE) \
830 (RECORD_OR_UNION_CHECK (NODE)->type_common.no_named_args_stdarg_p)
834#define TREE_SYMBOL_REFERENCED(NODE) \
835 (IDENTIFIER_NODE_CHECK (NODE)->base.static_flag)
839#define TYPE_REF_CAN_ALIAS_ALL(NODE) \
840 (PTR_OR_REF_CHECK (NODE)->base.static_flag)
845#define TREE_OVERFLOW(NODE) (CST_CHECK (NODE)->base.public_flag)
849#define TREE_OVERFLOW_P(EXPR) \
850 (CONSTANT_CLASS_P (EXPR) && TREE_OVERFLOW (EXPR))
857#define TREE_PUBLIC(NODE) ((NODE)->base.public_flag)
861#define TYPE_CACHED_VALUES_P(NODE) (TYPE_CHECK (NODE)->base.public_flag)
865#define SAVE_EXPR_RESOLVED_P(NODE) \
866 (SAVE_EXPR_CHECK (NODE)->base.public_flag)
870#define CALL_EXPR_VA_ARG_PACK(NODE) \
871 (CALL_EXPR_CHECK (NODE)->base.public_flag)
878#define TREE_SIDE_EFFECTS(NODE) \
879 (NON_TYPE_CHECK (NODE)->base.side_effects_flag)
884#define FORCED_LABEL(NODE) (LABEL_DECL_CHECK (NODE)->base.side_effects_flag)
888#define FALLTHROUGH_LABEL_P(NODE) \
889 (LABEL_DECL_CHECK (NODE)->base.private_flag)
893#define SWITCH_BREAK_LABEL_P(NODE) \
894 (LABEL_DECL_CHECK (NODE)->base.protected_flag)
899#define UNUSED_LABEL_P(NODE) \
900 (LABEL_DECL_CHECK (NODE)->base.default_def_flag)
915#define TREE_THIS_VOLATILE(NODE) ((NODE)->base.volatile_flag)
926#define TREE_THIS_NOTRAP(NODE) \
927 (TREE_CHECK5 (NODE, INDIRECT_REF, MEM_REF, TARGET_MEM_REF, ARRAY_REF, \
928 ARRAY_RANGE_REF)->base.nothrow_flag)
934#define TREE_READONLY(NODE) (NON_TYPE_CHECK (NODE)->base.readonly_flag)
938#define TREE_CONSTANT(NODE) (NON_TYPE_CHECK (NODE)->base.constant_flag)
941#define TYPE_SIZES_GIMPLIFIED(NODE) \
942 (TYPE_CHECK (NODE)->base.constant_flag)
945#define DECL_UNSIGNED(NODE) \
946 (DECL_COMMON_CHECK (NODE)->base.u.bits.unsigned_flag)
949#define TYPE_UNSIGNED(NODE) (TYPE_CHECK (NODE)->base.u.bits.unsigned_flag)
952#define TYPE_SIGN(NODE) ((signop) TYPE_UNSIGNED (NODE))
956#define TYPE_OVERFLOW_WRAPS(TYPE) \
957 (POINTER_TYPE_P (TYPE) \
958 ? flag_wrapv_pointer \
959 : (ANY_INTEGRAL_TYPE_CHECK(TYPE)->base.u.bits.unsigned_flag \
970#define TYPE_OVERFLOW_UNDEFINED(TYPE) \
971 (POINTER_TYPE_P (TYPE) \
972 ? !flag_wrapv_pointer \
973 : (!ANY_INTEGRAL_TYPE_CHECK(TYPE)->base.u.bits.unsigned_flag \
974 && !flag_wrapv && !flag_trapv))
978#define TYPE_OVERFLOW_TRAPS(TYPE) \
979 (!ANY_INTEGRAL_TYPE_CHECK(TYPE)->base.u.bits.unsigned_flag && flag_trapv)
982#define TYPE_OVERFLOW_SANITIZED(TYPE) \
983 (INTEGRAL_TYPE_P (TYPE) \
984 && !TYPE_OVERFLOW_WRAPS (TYPE) \
985 && (flag_sanitize & SANITIZE_SI_OVERFLOW))
996#define TREE_ASM_WRITTEN(NODE) ((NODE)->base.asm_written_flag)
1003#define TREE_USED(NODE) ((NODE)->base.used_flag)
1009#define TREE_NOTHROW(NODE) ((NODE)->base.nothrow_flag)
1013#define CALL_EXPR_RETURN_SLOT_OPT(NODE) \
1014 (CALL_EXPR_CHECK (NODE)->base.private_flag)
1019#define DECL_BY_REFERENCE(NODE) \
1020 (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \
1021 RESULT_DECL)->decl_common.decl_by_reference_flag)
1025#define DECL_READ_P(NODE) \
1026 (TREE_CHECK2 (NODE, VAR_DECL, PARM_DECL)->decl_common.decl_read_flag)
1030#define DECL_NONSHAREABLE(NODE) \
1031 (TREE_CHECK2 (NODE, VAR_DECL, \
1032 RESULT_DECL)->decl_common.decl_nonshareable_flag)
1036#define DECL_HIDDEN_STRING_LENGTH(NODE) \
1037 (TREE_CHECK (NODE, PARM_DECL)->decl_common.decl_nonshareable_flag)
1042#define CALL_FROM_THUNK_P(NODE) (CALL_EXPR_CHECK (NODE)->base.protected_flag)
1048#define CALL_ALLOCA_FOR_VAR_P(NODE) \
1049 (CALL_EXPR_CHECK (NODE)->base.protected_flag)
1054#define CALL_FROM_NEW_OR_DELETE_P(NODE) \
1055 (CALL_EXPR_CHECK (NODE)->base.protected_flag)
1058#define TREE_PRIVATE(NODE) ((NODE)->base.private_flag)
1060#define TREE_PROTECTED(NODE) ((NODE)->base.protected_flag)
1063#define TYPE_REF_IS_RVALUE(NODE) \
1064 (REFERENCE_TYPE_CHECK (NODE)->base.private_flag)
1068#define TREE_DEPRECATED(NODE) \
1069 ((NODE)->base.deprecated_flag)
1073#define TREE_UNAVAILABLE(NODE) \
1074 ((NODE)->base.u.bits.unavailable_flag)
1078#define IDENTIFIER_ANON_P(NODE) \
1079 (IDENTIFIER_NODE_CHECK (NODE)->base.private_flag)
1083#define IDENTIFIER_TRANSPARENT_ALIAS(NODE) \
1084 (IDENTIFIER_NODE_CHECK (NODE)->base.deprecated_flag)
1089#define TYPE_REVERSE_STORAGE_ORDER(NODE) \
1090 (TREE_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, ARRAY_TYPE)->base.u.bits.saturating_flag)
1093#define TYPE_SATURATING(NODE) \
1094 (TREE_NOT_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, ARRAY_TYPE)->base.u.bits.saturating_flag)
1107#define REF_REVERSE_STORAGE_ORDER(NODE) \
1108 (TREE_CHECK2 (NODE, BIT_FIELD_REF, MEM_REF)->base.default_def_flag)
1112#define FUNC_ADDR_BY_DESCRIPTOR(NODE) \
1113 (TREE_CHECK (NODE, ADDR_EXPR)->base.default_def_flag)
1117#define CALL_EXPR_BY_DESCRIPTOR(NODE) \
1118 (TREE_CHECK (NODE, CALL_EXPR)->base.default_def_flag)
1121#define TREE_LANG_FLAG_0(NODE) \
1122 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_0)
1123#define TREE_LANG_FLAG_1(NODE) \
1124 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_1)
1125#define TREE_LANG_FLAG_2(NODE) \
1126 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_2)
1127#define TREE_LANG_FLAG_3(NODE) \
1128 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_3)
1129#define TREE_LANG_FLAG_4(NODE) \
1130 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_4)
1131#define TREE_LANG_FLAG_5(NODE) \
1132 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_5)
1133#define TREE_LANG_FLAG_6(NODE) \
1134 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_6)
1138#define TREE_INT_CST_NUNITS(NODE) \
1139 (INTEGER_CST_CHECK (NODE)->base.u.int_length.unextended)
1140#define TREE_INT_CST_EXT_NUNITS(NODE) \
1141 (INTEGER_CST_CHECK (NODE)->base.u.int_length.extended)
1142#define TREE_INT_CST_ELT(NODE, I) TREE_INT_CST_ELT_CHECK (NODE, I)
1143#define TREE_INT_CST_LOW(NODE) \
1144 ((unsigned HOST_WIDE_INT) TREE_INT_CST_ELT (NODE, 0))
1148#define POLY_INT_CST_P(NODE) \
1149 (NUM_POLY_INT_COEFFS > 1 && TREE_CODE (NODE) == POLY_INT_CST)
1152#define POLY_INT_CST_COEFF(NODE, I) \
1153 (POLY_INT_CST_CHECK (NODE)->poly_int_cst.coeffs[I])
1155#define TREE_REAL_CST_PTR(NODE) (&REAL_CST_CHECK (NODE)->real_cst.value)
1156#define TREE_REAL_CST(NODE) (*TREE_REAL_CST_PTR (NODE))
1158#define TREE_FIXED_CST_PTR(NODE) \
1159 (FIXED_CST_CHECK (NODE)->fixed_cst.fixed_cst_ptr)
1160#define TREE_FIXED_CST(NODE) (*TREE_FIXED_CST_PTR (NODE))
1164#define TREE_STRING_LENGTH(NODE) (STRING_CST_CHECK (NODE)->string.length)
1165#define TREE_STRING_POINTER(NODE) \
1166 ((const char *)(STRING_CST_CHECK (NODE)->string.str))
1169#define TREE_REALPART(NODE) (COMPLEX_CST_CHECK (NODE)->complex.real)
1170#define TREE_IMAGPART(NODE) (COMPLEX_CST_CHECK (NODE)->complex.imag)
1173#define VECTOR_CST_NELTS(NODE) (TYPE_VECTOR_SUBPARTS (TREE_TYPE (NODE)))
1174#define VECTOR_CST_ELT(NODE,IDX) vector_cst_elt (NODE, IDX)
1176#define VECTOR_CST_LOG2_NPATTERNS(NODE) \
1177 (VECTOR_CST_CHECK (NODE)->base.u.vector_cst.log2_npatterns)
1178#define VECTOR_CST_NPATTERNS(NODE) \
1179 (1U << VECTOR_CST_LOG2_NPATTERNS (NODE))
1180#define VECTOR_CST_NELTS_PER_PATTERN(NODE) \
1181 (VECTOR_CST_CHECK (NODE)->base.u.vector_cst.nelts_per_pattern)
1182#define VECTOR_CST_DUPLICATE_P(NODE) \
1183 (VECTOR_CST_NELTS_PER_PATTERN (NODE) == 1)
1184#define VECTOR_CST_STEPPED_P(NODE) \
1185 (VECTOR_CST_NELTS_PER_PATTERN (NODE) == 3)
1186#define VECTOR_CST_ENCODED_ELTS(NODE) \
1187 (VECTOR_CST_CHECK (NODE)->vector.elts)
1188#define VECTOR_CST_ENCODED_ELT(NODE, ELT) \
1189 (VECTOR_CST_CHECK (NODE)->vector.elts[ELT])
1194#define IDENTIFIER_LENGTH(NODE) \
1195 (IDENTIFIER_NODE_CHECK (NODE)->identifier.id.len)
1196#define IDENTIFIER_POINTER(NODE) \
1197 ((const char *) IDENTIFIER_NODE_CHECK (NODE)->identifier.id.str)
1198#define IDENTIFIER_HASH_VALUE(NODE) \
1199 (IDENTIFIER_NODE_CHECK (NODE)->identifier.id.hash_value)
1204#define HT_IDENT_TO_GCC_IDENT(NODE) \
1205 ((tree) ((char *) (NODE) - sizeof (struct tree_common)))
1206#define GCC_IDENT_TO_HT_IDENT(NODE) (&((struct tree_identifier *) (NODE))->id)
1209#define TREE_PURPOSE(NODE) (TREE_LIST_CHECK (NODE)->list.purpose)
1210#define TREE_VALUE(NODE) (TREE_LIST_CHECK (NODE)->list.value)
1213#define TREE_VEC_LENGTH(NODE) (TREE_VEC_CHECK (NODE)->base.u.length)
1214#define TREE_VEC_BEGIN(NODE) (&TREE_VEC_CHECK (NODE)->vec.a[0])
1215#define TREE_VEC_END(NODE) \
1216 ((void) TREE_VEC_CHECK (NODE), &((NODE)->vec.a[(NODE)->base.u.length]))
1218#define TREE_VEC_ELT(NODE,I) TREE_VEC_ELT_CHECK (NODE, I)
1221#define CONSTRUCTOR_ELTS(NODE) (CONSTRUCTOR_CHECK (NODE)->constructor.elts)
1222#define CONSTRUCTOR_ELT(NODE,IDX) \
1223 (&(*CONSTRUCTOR_ELTS (NODE))[IDX])
1224#define CONSTRUCTOR_NELTS(NODE) \
1225 (vec_safe_length (CONSTRUCTOR_ELTS (NODE)))
1226#define CONSTRUCTOR_NO_CLEARING(NODE) \
1227 (CONSTRUCTOR_CHECK (NODE)->base.public_flag)
1232#define FOR_EACH_CONSTRUCTOR_VALUE(V, IX, VAL) \
1233 for (IX = 0; (IX >= vec_safe_length (V)) \
1235 : ((VAL = (*(V))[IX].value), \
1242#define FOR_EACH_CONSTRUCTOR_ELT(V, IX, INDEX, VAL) \
1243 for (IX = 0; (IX >= vec_safe_length (V)) \
1245 : (((void) (VAL = (*V)[IX].value)), \
1246 (INDEX = (*V)[IX].index), \
1251#define CONSTRUCTOR_APPEND_ELT(V, INDEX, VALUE) \
1253 constructor_elt _ce___ = {INDEX, VALUE}; \
1254 vec_safe_push ((V), _ce___); \
1259#define CONSTRUCTOR_BITFIELD_P(NODE) \
1260 (DECL_BIT_FIELD (FIELD_DECL_CHECK (NODE)) \
1261 && (DECL_MODE (NODE) != BLKmode \
1262 || TREE_CODE (TREE_TYPE (NODE)) == BITINT_TYPE))
1269#define TREE_CLOBBER_P(NODE) \
1270 (TREE_CODE (NODE) == CONSTRUCTOR && TREE_THIS_VOLATILE (NODE))
1273#define CLOBBER_KIND(NODE) \
1274 (CONSTRUCTOR_CHECK (NODE)->base.u.bits.address_space)
1279#define IS_EMPTY_STMT(NODE) (TREE_CODE (NODE) == NOP_EXPR \
1280 && VOID_TYPE_P (TREE_TYPE (NODE)) \
1281 && integer_zerop (TREE_OPERAND (NODE, 0)))
1284#define TREE_OPERAND_LENGTH(NODE) tree_operand_length (NODE)
1285#define TREE_OPERAND(NODE, I) TREE_OPERAND_CHECK (NODE, I)
1292#define VL_EXP_OPERAND_LENGTH(NODE) \
1293 ((int)TREE_INT_CST_LOW (VL_EXP_CHECK (NODE)->exp.operands[0]))
1296#define MAY_HAVE_DEBUG_MARKER_STMTS debug_nonbind_markers_p
1299#define MAY_HAVE_DEBUG_BIND_STMTS flag_var_tracking_assignments
1301#define MAY_HAVE_DEBUG_STMTS \
1302 (MAY_HAVE_DEBUG_MARKER_STMTS || MAY_HAVE_DEBUG_BIND_STMTS)
1305#define LOOP_EXPR_BODY(NODE) TREE_OPERAND_CHECK_CODE (NODE, LOOP_EXPR, 0)
1310#define EXPR_LOCATION(NODE) \
1311 (CAN_HAVE_LOCATION_P ((NODE)) ? (NODE)->exp.locus : UNKNOWN_LOCATION)
1312#define SET_EXPR_LOCATION(NODE, LOCUS) EXPR_CHECK ((NODE))->exp.locus = (LOCUS)
1313#define EXPR_HAS_LOCATION(NODE) (LOCATION_LOCUS (EXPR_LOCATION (NODE)) \
1314 != UNKNOWN_LOCATION)
1317#define EXPR_LOC_OR_LOC(NODE, LOCUS) (EXPR_HAS_LOCATION (NODE) \
1318 ? (NODE)->exp.locus : (LOCUS))
1319#define EXPR_FILENAME(NODE) LOCATION_FILE (EXPR_CHECK ((NODE))->exp.locus)
1320#define EXPR_LINENO(NODE) LOCATION_LINE (EXPR_CHECK (NODE)->exp.locus)
1322#define CAN_HAVE_RANGE_P(NODE) (CAN_HAVE_LOCATION_P (NODE))
1323#define EXPR_LOCATION_RANGE(NODE) (get_expr_source_range (EXPR_CHECK ((NODE))))
1325#define EXPR_HAS_RANGE(NODE) \
1326 (CAN_HAVE_RANGE_P (NODE) \
1327 ? EXPR_LOCATION_RANGE (NODE).m_start != UNKNOWN_LOCATION \
1332#define CAN_HAVE_LOCATION_P(NODE) ((NODE) && EXPR_P (NODE))
1343ATTRIBUTE_WARN_UNUSED_RESULT
1362#define SET_EXPR_UID(t, v) EXPR_CHECK ((t))->exp.condition_uid = (v)
1363#define EXPR_COND_UID(t) EXPR_CHECK ((t))->exp.condition_uid
1366#define TARGET_EXPR_SLOT(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 0)
1367#define TARGET_EXPR_INITIAL(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 1)
1368#define TARGET_EXPR_CLEANUP(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 2)
1371#define TARGET_EXPR_NO_ELIDE(NODE) (TARGET_EXPR_CHECK (NODE)->base.private_flag)
1375#define DECL_EXPR_DECL(NODE) TREE_OPERAND (DECL_EXPR_CHECK (NODE), 0)
1377#define EXIT_EXPR_COND(NODE) TREE_OPERAND (EXIT_EXPR_CHECK (NODE), 0)
1380#define COMPOUND_LITERAL_EXPR_DECL_EXPR(NODE) \
1381 TREE_OPERAND (COMPOUND_LITERAL_EXPR_CHECK (NODE), 0)
1382#define COMPOUND_LITERAL_EXPR_DECL(NODE) \
1383 DECL_EXPR_DECL (COMPOUND_LITERAL_EXPR_DECL_EXPR (NODE))
1386#define SWITCH_COND(NODE) TREE_OPERAND (SWITCH_EXPR_CHECK (NODE), 0)
1387#define SWITCH_BODY(NODE) TREE_OPERAND (SWITCH_EXPR_CHECK (NODE), 1)
1391#define SWITCH_ALL_CASES_P(NODE) (SWITCH_EXPR_CHECK (NODE)->base.private_flag)
1395#define CASE_LOW(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 0)
1396#define CASE_HIGH(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 1)
1397#define CASE_LABEL(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 2)
1398#define CASE_CHAIN(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 3)
1402#define TMR_BASE(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 0))
1403#define TMR_OFFSET(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 1))
1404#define TMR_INDEX(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 2))
1405#define TMR_STEP(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 3))
1406#define TMR_INDEX2(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 4))
1408#define MR_DEPENDENCE_CLIQUE(NODE) \
1409 (TREE_CHECK2 (NODE, MEM_REF, TARGET_MEM_REF)->base.u.dependence_info.clique)
1410#define MR_DEPENDENCE_BASE(NODE) \
1411 (TREE_CHECK2 (NODE, MEM_REF, TARGET_MEM_REF)->base.u.dependence_info.base)
1414#define BIND_EXPR_VARS(NODE) (TREE_OPERAND (BIND_EXPR_CHECK (NODE), 0))
1415#define BIND_EXPR_BODY(NODE) (TREE_OPERAND (BIND_EXPR_CHECK (NODE), 1))
1416#define BIND_EXPR_BLOCK(NODE) (TREE_OPERAND (BIND_EXPR_CHECK (NODE), 2))
1420#define GOTO_DESTINATION(NODE) TREE_OPERAND (GOTO_EXPR_CHECK (NODE), 0)
1426#define ASM_STRING(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 0)
1427#define ASM_OUTPUTS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 1)
1428#define ASM_INPUTS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 2)
1429#define ASM_CLOBBERS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 3)
1430#define ASM_LABELS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 4)
1434#define ASM_BASIC_P(NODE) (ASM_EXPR_CHECK (NODE)->base.static_flag)
1435#define ASM_VOLATILE_P(NODE) (ASM_EXPR_CHECK (NODE)->base.public_flag)
1438#define ASM_INLINE_P(NODE) (ASM_EXPR_CHECK (NODE)->base.protected_flag)
1441#define COND_EXPR_COND(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 0))
1442#define COND_EXPR_THEN(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 1))
1443#define COND_EXPR_ELSE(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 2))
1446#define CHREC_LEFT(NODE) TREE_OPERAND (POLYNOMIAL_CHREC_CHECK (NODE), 0)
1447#define CHREC_RIGHT(NODE) TREE_OPERAND (POLYNOMIAL_CHREC_CHECK (NODE), 1)
1448#define CHREC_VARIABLE(NODE) POLYNOMIAL_CHREC_CHECK (NODE)->base.u.chrec_var
1450#define CHREC_NOWRAP(NODE) POLYNOMIAL_CHREC_CHECK (NODE)->base.nothrow_flag
1454#define LABEL_EXPR_LABEL(NODE) TREE_OPERAND (LABEL_EXPR_CHECK (NODE), 0)
1457#define CATCH_TYPES(NODE) TREE_OPERAND (CATCH_EXPR_CHECK (NODE), 0)
1458#define CATCH_BODY(NODE) TREE_OPERAND (CATCH_EXPR_CHECK (NODE), 1)
1461#define EH_FILTER_TYPES(NODE) TREE_OPERAND (EH_FILTER_EXPR_CHECK (NODE), 0)
1462#define EH_FILTER_FAILURE(NODE) TREE_OPERAND (EH_FILTER_EXPR_CHECK (NODE), 1)
1465#define OBJ_TYPE_REF_EXPR(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 0)
1466#define OBJ_TYPE_REF_OBJECT(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 1)
1467#define OBJ_TYPE_REF_TOKEN(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 2)
1470#define CALL_EXPR_FN(NODE) TREE_OPERAND (CALL_EXPR_CHECK (NODE), 1)
1471#define CALL_EXPR_STATIC_CHAIN(NODE) TREE_OPERAND (CALL_EXPR_CHECK (NODE), 2)
1472#define CALL_EXPR_ARG(NODE, I) TREE_OPERAND (CALL_EXPR_CHECK (NODE), (I) + 3)
1473#define call_expr_nargs(NODE) (VL_EXP_OPERAND_LENGTH (NODE) - 3)
1474#define CALL_EXPR_IFN(NODE) (CALL_EXPR_CHECK (NODE)->base.u.ifn)
1482#define CALL_EXPR_ARGP(NODE) \
1483 (&(TREE_OPERAND (CALL_EXPR_CHECK (NODE), 0)) + 3)
1486#define TRANSACTION_EXPR_BODY(NODE) \
1487 TREE_OPERAND (TRANSACTION_EXPR_CHECK (NODE), 0)
1488#define TRANSACTION_EXPR_OUTER(NODE) \
1489 (TRANSACTION_EXPR_CHECK (NODE)->base.static_flag)
1490#define TRANSACTION_EXPR_RELAXED(NODE) \
1491 (TRANSACTION_EXPR_CHECK (NODE)->base.public_flag)
1497#define OMP_BODY(NODE) \
1498 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_PARALLEL, OMP_MASTER), 0)
1499#define OMP_CLAUSES(NODE) \
1500 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_PARALLEL, OMP_SCAN), 1)
1503#define OMP_STANDALONE_CLAUSES(NODE) \
1504 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_CACHE, OMP_TARGET_EXIT_DATA), 0)
1506#define OACC_DATA_BODY(NODE) \
1507 TREE_OPERAND (OACC_DATA_CHECK (NODE), 0)
1508#define OACC_DATA_CLAUSES(NODE) \
1509 TREE_OPERAND (OACC_DATA_CHECK (NODE), 1)
1511#define OACC_HOST_DATA_BODY(NODE) \
1512 TREE_OPERAND (OACC_HOST_DATA_CHECK (NODE), 0)
1513#define OACC_HOST_DATA_CLAUSES(NODE) \
1514 TREE_OPERAND (OACC_HOST_DATA_CHECK (NODE), 1)
1516#define OACC_CACHE_CLAUSES(NODE) \
1517 TREE_OPERAND (OACC_CACHE_CHECK (NODE), 0)
1519#define OACC_DECLARE_CLAUSES(NODE) \
1520 TREE_OPERAND (OACC_DECLARE_CHECK (NODE), 0)
1522#define OACC_ENTER_DATA_CLAUSES(NODE) \
1523 TREE_OPERAND (OACC_ENTER_DATA_CHECK (NODE), 0)
1525#define OACC_EXIT_DATA_CLAUSES(NODE) \
1526 TREE_OPERAND (OACC_EXIT_DATA_CHECK (NODE), 0)
1528#define OACC_UPDATE_CLAUSES(NODE) \
1529 TREE_OPERAND (OACC_UPDATE_CHECK (NODE), 0)
1531#define OMP_PARALLEL_BODY(NODE) TREE_OPERAND (OMP_PARALLEL_CHECK (NODE), 0)
1532#define OMP_PARALLEL_CLAUSES(NODE) TREE_OPERAND (OMP_PARALLEL_CHECK (NODE), 1)
1534#define OMP_TASK_BODY(NODE) TREE_OPERAND (OMP_TASK_CHECK (NODE), 0)
1535#define OMP_TASK_CLAUSES(NODE) TREE_OPERAND (OMP_TASK_CHECK (NODE), 1)
1537#define OMP_TASKREG_CHECK(NODE) TREE_RANGE_CHECK (NODE, OMP_PARALLEL, OMP_TASK)
1538#define OMP_TASKREG_BODY(NODE) TREE_OPERAND (OMP_TASKREG_CHECK (NODE), 0)
1539#define OMP_TASKREG_CLAUSES(NODE) TREE_OPERAND (OMP_TASKREG_CHECK (NODE), 1)
1541#define OMP_LOOPING_CHECK(NODE) TREE_RANGE_CHECK (NODE, OMP_FOR, OACC_LOOP)
1542#define OMP_FOR_BODY(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 0)
1543#define OMP_FOR_CLAUSES(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 1)
1544#define OMP_FOR_INIT(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 2)
1545#define OMP_FOR_COND(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 3)
1546#define OMP_FOR_INCR(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 4)
1547#define OMP_FOR_PRE_BODY(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 5)
1548#define OMP_FOR_ORIG_DECLS(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 6)
1550#define OMP_LOOPXFORM_CHECK(NODE) TREE_RANGE_CHECK (NODE, OMP_TILE, OMP_UNROLL)
1551#define OMP_LOOPXFORM_LOWERED(NODE) \
1552 (OMP_LOOPXFORM_CHECK (NODE)->base.public_flag)
1554#define OMP_SECTIONS_BODY(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 0)
1555#define OMP_SECTIONS_CLAUSES(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 1)
1557#define OMP_SECTION_BODY(NODE) TREE_OPERAND (OMP_SECTION_CHECK (NODE), 0)
1559#define OMP_STRUCTURED_BLOCK_BODY(NODE) \
1560 TREE_OPERAND (OMP_STRUCTURED_BLOCK_CHECK (NODE), 0)
1562#define OMP_SINGLE_BODY(NODE) TREE_OPERAND (OMP_SINGLE_CHECK (NODE), 0)
1563#define OMP_SINGLE_CLAUSES(NODE) TREE_OPERAND (OMP_SINGLE_CHECK (NODE), 1)
1565#define OMP_SCOPE_BODY(NODE) TREE_OPERAND (OMP_SCOPE_CHECK (NODE), 0)
1566#define OMP_SCOPE_CLAUSES(NODE) TREE_OPERAND (OMP_SCOPE_CHECK (NODE), 1)
1568#define OMP_MASTER_BODY(NODE) TREE_OPERAND (OMP_MASTER_CHECK (NODE), 0)
1570#define OMP_MASKED_BODY(NODE) TREE_OPERAND (OMP_MASKED_CHECK (NODE), 0)
1571#define OMP_MASKED_CLAUSES(NODE) TREE_OPERAND (OMP_MASKED_CHECK (NODE), 1)
1573#define OMP_TASKGROUP_BODY(NODE) TREE_OPERAND (OMP_TASKGROUP_CHECK (NODE), 0)
1574#define OMP_TASKGROUP_CLAUSES(NODE) \
1575 TREE_OPERAND (OMP_TASKGROUP_CHECK (NODE), 1)
1577#define OMP_ORDERED_BODY(NODE) TREE_OPERAND (OMP_ORDERED_CHECK (NODE), 0)
1578#define OMP_ORDERED_CLAUSES(NODE) TREE_OPERAND (OMP_ORDERED_CHECK (NODE), 1)
1580#define OMP_CRITICAL_BODY(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 0)
1581#define OMP_CRITICAL_CLAUSES(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 1)
1582#define OMP_CRITICAL_NAME(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 2)
1584#define OMP_TEAMS_BODY(NODE) TREE_OPERAND (OMP_TEAMS_CHECK (NODE), 0)
1585#define OMP_TEAMS_CLAUSES(NODE) TREE_OPERAND (OMP_TEAMS_CHECK (NODE), 1)
1587#define OMP_TARGET_DATA_BODY(NODE) \
1588 TREE_OPERAND (OMP_TARGET_DATA_CHECK (NODE), 0)
1589#define OMP_TARGET_DATA_CLAUSES(NODE)\
1590 TREE_OPERAND (OMP_TARGET_DATA_CHECK (NODE), 1)
1592#define OMP_TARGET_BODY(NODE) TREE_OPERAND (OMP_TARGET_CHECK (NODE), 0)
1593#define OMP_TARGET_CLAUSES(NODE) TREE_OPERAND (OMP_TARGET_CHECK (NODE), 1)
1595#define OMP_TARGET_UPDATE_CLAUSES(NODE)\
1596 TREE_OPERAND (OMP_TARGET_UPDATE_CHECK (NODE), 0)
1598#define OMP_TARGET_ENTER_DATA_CLAUSES(NODE)\
1599 TREE_OPERAND (OMP_TARGET_ENTER_DATA_CHECK (NODE), 0)
1601#define OMP_TARGET_EXIT_DATA_CLAUSES(NODE)\
1602 TREE_OPERAND (OMP_TARGET_EXIT_DATA_CHECK (NODE), 0)
1604#define OMP_SCAN_BODY(NODE) TREE_OPERAND (OMP_SCAN_CHECK (NODE), 0)
1605#define OMP_SCAN_CLAUSES(NODE) TREE_OPERAND (OMP_SCAN_CHECK (NODE), 1)
1607#define OMP_CLAUSE_SIZE(NODE) \
1608 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \
1610 OMP_CLAUSE__CACHE_), 1)
1612#define OMP_CLAUSE_CHAIN(NODE) TREE_CHAIN (OMP_CLAUSE_CHECK (NODE))
1613#define OMP_CLAUSE_DECL(NODE) \
1614 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \
1615 OMP_CLAUSE_PRIVATE, \
1616 OMP_CLAUSE__SCANTEMP_), 0)
1617#define OMP_CLAUSE_HAS_LOCATION(NODE) \
1618 (LOCATION_LOCUS ((OMP_CLAUSE_CHECK (NODE))->omp_clause.locus) \
1619 != UNKNOWN_LOCATION)
1620#define OMP_CLAUSE_LOCATION(NODE) (OMP_CLAUSE_CHECK (NODE))->omp_clause.locus
1624#define OMP_FOR_NON_RECTANGULAR(NODE) \
1625 (OMP_LOOPING_CHECK (NODE)->base.private_flag)
1629#define OMP_SECTION_LAST(NODE) \
1630 (OMP_SECTION_CHECK (NODE)->base.private_flag)
1634#define OMP_PARALLEL_COMBINED(NODE) \
1635 (OMP_PARALLEL_CHECK (NODE)->base.private_flag)
1639#define OMP_TEAMS_COMBINED(NODE) \
1640 (OMP_TEAMS_CHECK (NODE)->base.private_flag)
1644#define OMP_TARGET_COMBINED(NODE) \
1645 (OMP_TARGET_CHECK (NODE)->base.private_flag)
1649#define OMP_MASTER_COMBINED(NODE) \
1650 (OMP_MASTER_CHECK (NODE)->base.private_flag)
1654#define OMP_MASKED_COMBINED(NODE) \
1655 (OMP_MASKED_CHECK (NODE)->base.private_flag)
1658#define OMP_ATOMIC_MEMORY_ORDER(NODE) \
1659 (TREE_RANGE_CHECK (NODE, OMP_ATOMIC, \
1660 OMP_ATOMIC_CAPTURE_NEW)->base.u.omp_atomic_memory_order)
1663#define OMP_ATOMIC_WEAK(NODE) \
1664 (TREE_RANGE_CHECK (NODE, OMP_ATOMIC, \
1665 OMP_ATOMIC_CAPTURE_NEW)->base.public_flag)
1670#define OMP_CLAUSE_PRIVATE_DEBUG(NODE) \
1671 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE)->base.public_flag)
1675#define OMP_CLAUSE_PRIVATE_OUTER_REF(NODE) \
1676 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE))
1681#define OMP_CLAUSE_PRIVATE_TASKLOOP_IV(NODE) \
1682 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE))
1685#define OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT(NODE) \
1686 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE)->base.public_flag)
1690#define OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE(NODE) \
1691 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE))
1695#define OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET(NODE) \
1696 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE))
1700#define OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE(NODE) \
1701 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE)->base.public_flag)
1702#define OMP_CLAUSE_LASTPRIVATE_STMT(NODE) \
1703 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
1704 OMP_CLAUSE_LASTPRIVATE),\
1706#define OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ(NODE) \
1707 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
1713#define OMP_CLAUSE_LASTPRIVATE_LOOP_IV(NODE) \
1714 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE))
1717#define OMP_CLAUSE_LASTPRIVATE_CONDITIONAL(NODE) \
1718 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE))
1723#define OMP_CLAUSE_SHARED_FIRSTPRIVATE(NODE) \
1724 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SHARED)->base.public_flag)
1728#define OMP_CLAUSE_SHARED_READONLY(NODE) \
1729 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SHARED))
1731#define OMP_CLAUSE_IF_MODIFIER(NODE) \
1732 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_IF)->omp_clause.subcode.if_modifier)
1734#define OMP_CLAUSE_FINAL_EXPR(NODE) \
1735 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FINAL), 0)
1736#define OMP_CLAUSE_IF_EXPR(NODE) \
1737 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_IF), 0)
1738#define OMP_CLAUSE_SELF_EXPR(NODE) \
1739 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SELF), 0)
1740#define OMP_CLAUSE_NUM_THREADS_EXPR(NODE) \
1741 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_THREADS),0)
1742#define OMP_CLAUSE_SCHEDULE_CHUNK_EXPR(NODE) \
1743 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE), 0)
1744#define OMP_CLAUSE_NUM_TASKS_EXPR(NODE) \
1745 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TASKS), 0)
1746#define OMP_CLAUSE_HINT_EXPR(NODE) \
1747 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_HINT), 0)
1748#define OMP_CLAUSE_FILTER_EXPR(NODE) \
1749 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FILTER), 0)
1750#define OMP_CLAUSE_PARTIAL_EXPR(NODE) \
1751 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PARTIAL), 0)
1752#define OMP_CLAUSE_SIZES_LIST(NODE) \
1753 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SIZES), 0)
1755#define OMP_CLAUSE_GRAINSIZE_EXPR(NODE) \
1756 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GRAINSIZE),0)
1758#define OMP_CLAUSE_PRIORITY_EXPR(NODE) \
1759 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIORITY),0)
1761#define OMP_CLAUSE_GRAINSIZE_STRICT(NODE) \
1762 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GRAINSIZE))
1763#define OMP_CLAUSE_NUM_TASKS_STRICT(NODE) \
1764 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TASKS))
1767#define OMP_CLAUSE_EXPR(NODE, CLAUSE) \
1768 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, CLAUSE), 0)
1769#define OMP_CLAUSE_GANG_EXPR(NODE) \
1770 OMP_CLAUSE_OPERAND ( \
1771 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GANG), 0)
1772#define OMP_CLAUSE_GANG_STATIC_EXPR(NODE) \
1773 OMP_CLAUSE_OPERAND ( \
1774 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GANG), 1)
1775#define OMP_CLAUSE_ASYNC_EXPR(NODE) \
1776 OMP_CLAUSE_OPERAND ( \
1777 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ASYNC), 0)
1778#define OMP_CLAUSE_WAIT_EXPR(NODE) \
1779 OMP_CLAUSE_OPERAND ( \
1780 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_WAIT), 0)
1781#define OMP_CLAUSE_VECTOR_EXPR(NODE) \
1782 OMP_CLAUSE_OPERAND ( \
1783 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_VECTOR), 0)
1784#define OMP_CLAUSE_WORKER_EXPR(NODE) \
1785 OMP_CLAUSE_OPERAND ( \
1786 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_WORKER), 0)
1787#define OMP_CLAUSE_NUM_GANGS_EXPR(NODE) \
1788 OMP_CLAUSE_OPERAND ( \
1789 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_GANGS), 0)
1790#define OMP_CLAUSE_NUM_WORKERS_EXPR(NODE) \
1791 OMP_CLAUSE_OPERAND ( \
1792 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_WORKERS), 0)
1793#define OMP_CLAUSE_VECTOR_LENGTH_EXPR(NODE) \
1794 OMP_CLAUSE_OPERAND ( \
1795 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_VECTOR_LENGTH), 0)
1797#define OMP_CLAUSE_DEPEND_KIND(NODE) \
1798 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEPEND)->omp_clause.subcode.depend_kind)
1800#define OMP_CLAUSE_DOACROSS_KIND(NODE) \
1801 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DOACROSS)->omp_clause.subcode.doacross_kind)
1803#define OMP_CLAUSE_DOACROSS_SINK_NEGATIVE(NODE) \
1804 TREE_PUBLIC (TREE_LIST_CHECK (NODE))
1807#define OMP_CLAUSE_DOACROSS_DEPEND(NODE) \
1808 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DOACROSS))
1810#define OMP_CLAUSE_MAP_KIND(NODE) \
1811 ((enum gomp_map_kind) OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->omp_clause.subcode.map_kind)
1812#define OMP_CLAUSE_SET_MAP_KIND(NODE, MAP_KIND) \
1813 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->omp_clause.subcode.map_kind \
1814 = (unsigned int) (MAP_KIND))
1816#define OMP_CLAUSE_MOTION_PRESENT(NODE) \
1817 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_FROM, OMP_CLAUSE_TO)->base.deprecated_flag)
1822#define OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION(NODE) \
1823 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.public_flag)
1826#define OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION(NODE) \
1827 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1831#define OMP_CLAUSE_MAP_IN_REDUCTION(NODE) \
1832 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1836#define OMP_CLAUSE_MAP_IMPLICIT(NODE) \
1837 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.default_def_flag)
1841#define OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P(NODE) \
1842 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.deprecated_flag)
1845#define OMP_CLAUSE_ATTACHMENT_MAPPING_ERASED(NODE) \
1846 TREE_STATIC (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1849#define OMP_CLAUSE_RELEASE_DESCRIPTOR(NODE) \
1850 TREE_NOTHROW (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1854#define OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE(NODE) \
1855 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.addressable_flag)
1858#define OMP_CLAUSE_MAP_READONLY(NODE) \
1859 TREE_READONLY (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1862#define OMP_CLAUSE__CACHE__READONLY(NODE) \
1863 TREE_READONLY (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__CACHE_))
1867#define OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT(NODE) \
1868 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_USE_DEVICE_PTR)->base.public_flag)
1870#define OMP_CLAUSE_PROC_BIND_KIND(NODE) \
1871 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PROC_BIND)->omp_clause.subcode.proc_bind_kind)
1873#define OMP_CLAUSE_DEVICE_TYPE_KIND(NODE) \
1874 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE_TYPE)->omp_clause.subcode.device_type_kind)
1876#define OMP_CLAUSE_INDIRECT_EXPR(NODE) \
1877 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_INDIRECT), 0)
1881#define OMP_CLAUSE_DEVICE_ANCESTOR(NODE) \
1882 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE)->base.public_flag)
1884#define OMP_CLAUSE_COLLAPSE_EXPR(NODE) \
1885 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 0)
1886#define OMP_CLAUSE_COLLAPSE_ITERVAR(NODE) \
1887 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 1)
1888#define OMP_CLAUSE_COLLAPSE_COUNT(NODE) \
1889 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 2)
1891#define OMP_CLAUSE_ORDERED_EXPR(NODE) \
1892 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDERED), 0)
1896#define OMP_CLAUSE_ORDERED_DOACROSS(NODE) \
1897 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDERED)->base.public_flag)
1900#define OMP_CLAUSE_ORDER_UNCONSTRAINED(NODE) \
1901 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDER)->base.public_flag)
1903#define OMP_CLAUSE_ORDER_REPRODUCIBLE(NODE) \
1904 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDER))
1906#define OMP_CLAUSE_REDUCTION_CODE(NODE) \
1907 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1908 OMP_CLAUSE_IN_REDUCTION)->omp_clause.subcode.reduction_code)
1909#define OMP_CLAUSE_REDUCTION_INIT(NODE) \
1910 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1911 OMP_CLAUSE_IN_REDUCTION), 1)
1912#define OMP_CLAUSE_REDUCTION_MERGE(NODE) \
1913 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1914 OMP_CLAUSE_IN_REDUCTION), 2)
1915#define OMP_CLAUSE_REDUCTION_GIMPLE_INIT(NODE) \
1916 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
1917#define OMP_CLAUSE_REDUCTION_GIMPLE_MERGE(NODE) \
1918 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_merge
1919#define OMP_CLAUSE_REDUCTION_PLACEHOLDER(NODE) \
1920 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1921 OMP_CLAUSE_IN_REDUCTION), 3)
1922#define OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER(NODE) \
1923 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1924 OMP_CLAUSE_IN_REDUCTION), 4)
1928#define OMP_CLAUSE_REDUCTION_OMP_ORIG_REF(NODE) \
1929 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1930 OMP_CLAUSE_IN_REDUCTION)->base.public_flag)
1933#define OMP_CLAUSE_REDUCTION_TASK(NODE) \
1934 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_REDUCTION))
1937#define OMP_CLAUSE_REDUCTION_INSCAN(NODE) \
1938 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_REDUCTION))
1942#define OMP_CLAUSE_LINEAR_NO_COPYIN(NODE) \
1943 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.public_flag)
1947#define OMP_CLAUSE_LINEAR_NO_COPYOUT(NODE) \
1948 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR))
1951#define OMP_CLAUSE_LINEAR_VARIABLE_STRIDE(NODE) \
1952 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR))
1956#define OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER(NODE) \
1957 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.addressable_flag)
1961#define OMP_CLAUSE_LINEAR_ARRAY(NODE) \
1962 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.deprecated_flag)
1964#define OMP_CLAUSE_LINEAR_STEP(NODE) \
1965 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR), 1)
1967#define OMP_CLAUSE_LINEAR_STMT(NODE) \
1968 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR), 2)
1970#define OMP_CLAUSE_LINEAR_GIMPLE_SEQ(NODE) \
1971 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
1973#define OMP_CLAUSE_LINEAR_KIND(NODE) \
1974 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->omp_clause.subcode.linear_kind)
1976#define OMP_CLAUSE_ALIGNED_ALIGNMENT(NODE) \
1977 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALIGNED), 1)
1979#define OMP_CLAUSE_ALLOCATE_ALLOCATOR(NODE) \
1980 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALLOCATE), 1)
1982#define OMP_CLAUSE_ALLOCATE_ALIGN(NODE) \
1983 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALLOCATE), 2)
1989#define OMP_CLAUSE_ALLOCATE_COMBINED(NODE) \
1990 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALLOCATE)->base.public_flag)
1992#define OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR(NODE) \
1993 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TEAMS), 0)
1995#define OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR(NODE) \
1996 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TEAMS), 1)
1998#define OMP_CLAUSE_THREAD_LIMIT_EXPR(NODE) \
1999 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
2000 OMP_CLAUSE_THREAD_LIMIT), 0)
2002#define OMP_CLAUSE_DEVICE_ID(NODE) \
2003 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE), 0)
2005#define OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR(NODE) \
2006 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
2007 OMP_CLAUSE_DIST_SCHEDULE), 0)
2009#define OMP_CLAUSE_SAFELEN_EXPR(NODE) \
2010 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SAFELEN), 0)
2012#define OMP_CLAUSE_SIMDLEN_EXPR(NODE) \
2013 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SIMDLEN), 0)
2015#define OMP_CLAUSE__SIMDUID__DECL(NODE) \
2016 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SIMDUID_), 0)
2018#define OMP_CLAUSE_SCHEDULE_KIND(NODE) \
2019 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE)->omp_clause.subcode.schedule_kind)
2022#define OMP_CLAUSE_SCHEDULE_SIMD(NODE) \
2023 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE)->base.public_flag)
2025#define OMP_CLAUSE_DEFAULT_KIND(NODE) \
2026 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEFAULT)->omp_clause.subcode.default_kind)
2028#define OMP_CLAUSE_DEFAULTMAP_KIND(NODE) \
2029 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEFAULTMAP)->omp_clause.subcode.defaultmap_kind)
2030#define OMP_CLAUSE_DEFAULTMAP_CATEGORY(NODE) \
2031 ((enum omp_clause_defaultmap_kind) \
2032 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) & OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK))
2033#define OMP_CLAUSE_DEFAULTMAP_BEHAVIOR(NODE) \
2034 ((enum omp_clause_defaultmap_kind) \
2035 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) & OMP_CLAUSE_DEFAULTMAP_MASK))
2036#define OMP_CLAUSE_DEFAULTMAP_SET_KIND(NODE, BEHAVIOR, CATEGORY) \
2037 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) \
2038 = (enum omp_clause_defaultmap_kind) (CATEGORY | BEHAVIOR))
2040#define OMP_CLAUSE_BIND_KIND(NODE) \
2041 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_BIND)->omp_clause.subcode.bind_kind)
2044#define OMP_CLAUSE_ENTER_TO(NODE) \
2045 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ENTER)->base.public_flag)
2047#define OMP_CLAUSE_TILE_LIST(NODE) \
2048 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 0)
2049#define OMP_CLAUSE_TILE_ITERVAR(NODE) \
2050 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 1)
2051#define OMP_CLAUSE_TILE_COUNT(NODE) \
2052 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 2)
2055#define OMP_CLAUSE__CONDTEMP__ITER(NODE) \
2056 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__CONDTEMP_)->base.public_flag)
2060#define OMP_CLAUSE__SCANTEMP__ALLOC(NODE) \
2061 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SCANTEMP_)->base.public_flag)
2066#define OMP_CLAUSE__SCANTEMP__CONTROL(NODE) \
2067 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SCANTEMP_))
2073#define SSA_NAME_IS_VIRTUAL_OPERAND(NODE) \
2074 SSA_NAME_CHECK (NODE)->base.public_flag
2078#define SSA_NAME_IDENTIFIER(NODE) \
2079 (SSA_NAME_CHECK (NODE)->ssa_name.var != NULL_TREE \
2080 ? (TREE_CODE ((NODE)->ssa_name.var) == IDENTIFIER_NODE \
2081 ? (NODE)->ssa_name.var \
2082 : DECL_NAME ((NODE)->ssa_name.var)) \
2088#define SSA_NAME_VAR(NODE) \
2089 (SSA_NAME_CHECK (NODE)->ssa_name.var == NULL_TREE \
2090 || TREE_CODE ((NODE)->ssa_name.var) == IDENTIFIER_NODE \
2091 ? NULL_TREE : (NODE)->ssa_name.var)
2093#define SET_SSA_NAME_VAR_OR_IDENTIFIER(NODE,VAR) \
2096 tree var_ = (VAR); \
2097 SSA_NAME_CHECK (NODE)->ssa_name.var = var_; \
2098 SSA_NAME_IS_VIRTUAL_OPERAND (NODE) \
2100 && TREE_CODE (var_) == VAR_DECL \
2101 && VAR_DECL_IS_VIRTUAL_OPERAND (var_)); \
2106#define SSA_NAME_DEF_STMT(NODE) SSA_NAME_CHECK (NODE)->ssa_name.def_stmt
2110#define SSA_NAME_VERSION(NODE) SSA_NAME_CHECK (NODE)->base.u.version
2115#define SSA_NAME_OCCURS_IN_ABNORMAL_PHI(NODE) \
2116 SSA_NAME_CHECK (NODE)->base.asm_written_flag
2121#define SSA_NAME_IN_FREE_LIST(NODE) \
2122 SSA_NAME_CHECK (NODE)->base.nothrow_flag
2129#define SSA_NAME_IS_DEFAULT_DEF(NODE) \
2130 SSA_NAME_CHECK (NODE)->base.default_def_flag
2136#define SSA_NAME_POINTS_TO_READONLY_MEMORY(NODE) \
2137 SSA_NAME_CHECK (NODE)->base.deprecated_flag
2140#define SSA_NAME_PTR_INFO(N) \
2141 SSA_NAME_CHECK (N)->ssa_name.info.ptr_info
2144#define SSA_NAME_RANGE_INFO(N) \
2145 SSA_NAME_CHECK (N)->ssa_name.info.range_info
2148#define SSA_NAME_IMM_USE_NODE(NODE) SSA_NAME_CHECK (NODE)->ssa_name.imm_uses
2150#define OMP_CLAUSE_CODE(NODE) \
2151 (OMP_CLAUSE_CHECK (NODE))->omp_clause.code
2153#define OMP_CLAUSE_SET_CODE(NODE, CODE) \
2154 ((OMP_CLAUSE_CHECK (NODE))->omp_clause.code = (CODE))
2156#define OMP_CLAUSE_OPERAND(NODE, I) \
2157 OMP_CLAUSE_ELT_CHECK (NODE, I)
2161#define BLOCK_VARS(NODE) (BLOCK_CHECK (NODE)->block.vars)
2162#define BLOCK_NONLOCALIZED_VARS(NODE) \
2163 (BLOCK_CHECK (NODE)->block.nonlocalized_vars)
2164#define BLOCK_NUM_NONLOCALIZED_VARS(NODE) \
2165 vec_safe_length (BLOCK_NONLOCALIZED_VARS (NODE))
2166#define BLOCK_NONLOCALIZED_VAR(NODE,N) (*BLOCK_NONLOCALIZED_VARS (NODE))[N]
2168#define BLOCK_SUBBLOCKS(NODE) (BLOCK_CHECK (NODE)->block.subblocks)
2173#define BLOCK_SUPERCONTEXT(NODE) (BLOCK_CHECK (NODE)->block.supercontext)
2175#define BLOCK_CHAIN(NODE) (BLOCK_CHECK (NODE)->block.chain)
2180#define BLOCK_ABSTRACT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.abstract_origin)
2181#define BLOCK_ORIGIN(NODE) \
2182 (BLOCK_ABSTRACT_ORIGIN(NODE) ? BLOCK_ABSTRACT_ORIGIN(NODE) : (NODE))
2183#define BLOCK_DIE(NODE) (BLOCK_CHECK (NODE)->block.die)
2186#define BLOCK_SAME_RANGE(NODE) (BLOCK_CHECK (NODE)->base.u.bits.nameless_flag)
2189#define BLOCK_IN_COLD_SECTION_P(NODE) \
2190 (BLOCK_CHECK (NODE)->base.u.bits.atomic_flag)
2195#define BLOCK_NUMBER(NODE) (BLOCK_CHECK (NODE)->block.block_num)
2219#define BLOCK_FRAGMENT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_origin)
2220#define BLOCK_FRAGMENT_CHAIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_chain)
2226#define BLOCK_SOURCE_LOCATION(NODE) (BLOCK_CHECK (NODE)->block.locus)
2231#define BLOCK_SOURCE_END_LOCATION(NODE) (BLOCK_CHECK (NODE)->block.end_locus)
2244#define TYPE_UID(NODE) (TYPE_CHECK (NODE)->type_common.uid)
2249#define TYPE_SIZE(NODE) (TYPE_CHECK (NODE)->type_common.size)
2251#define TYPE_SIZE_UNIT(NODE) (TYPE_CHECK (NODE)->type_common.size_unit)
2252#define TYPE_POINTER_TO(NODE) (TYPE_CHECK (NODE)->type_common.pointer_to)
2253#define TYPE_REFERENCE_TO(NODE) (TYPE_CHECK (NODE)->type_common.reference_to)
2254#define TYPE_PRECISION(NODE) \
2255 (TREE_NOT_CHECK (TYPE_CHECK (NODE), VECTOR_TYPE)->type_common.precision)
2256#define TYPE_PRECISION_RAW(NODE) (TYPE_CHECK (NODE)->type_common.precision)
2257#define TYPE_NAME(NODE) (TYPE_CHECK (NODE)->type_common.name)
2258#define TYPE_NEXT_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.next_variant)
2259#define TYPE_MAIN_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.main_variant)
2260#define TYPE_CONTEXT(NODE) (TYPE_CHECK (NODE)->type_common.context)
2262#define TYPE_MODE_RAW(NODE) (TYPE_CHECK (NODE)->type_common.mode)
2263#define TYPE_MODE(NODE) \
2264 (VECTOR_TYPE_P (TYPE_CHECK (NODE)) \
2265 ? vector_type_mode (NODE) : (NODE)->type_common.mode)
2266#define SCALAR_TYPE_MODE(NODE) \
2267 (as_a <scalar_mode> (TYPE_CHECK (NODE)->type_common.mode))
2268#define SCALAR_INT_TYPE_MODE(NODE) \
2269 (as_a <scalar_int_mode> (TYPE_CHECK (NODE)->type_common.mode))
2270#define SCALAR_FLOAT_TYPE_MODE(NODE) \
2271 (as_a <scalar_float_mode> (TYPE_CHECK (NODE)->type_common.mode))
2272#define SET_TYPE_MODE(NODE, MODE) \
2273 (TYPE_CHECK (NODE)->type_common.mode = (MODE))
2297#define TYPE_CANONICAL(NODE) (TYPE_CHECK (NODE)->type_common.canonical)
2304#define TYPE_STRUCTURAL_EQUALITY_P(NODE) (TYPE_CANONICAL (NODE) == NULL_TREE)
2307#define SET_TYPE_STRUCTURAL_EQUALITY(NODE) (TYPE_CANONICAL (NODE) = NULL_TREE)
2309#define TYPE_IBIT(NODE) (GET_MODE_IBIT (TYPE_MODE (NODE)))
2310#define TYPE_FBIT(NODE) (GET_MODE_FBIT (TYPE_MODE (NODE)))
2317#define TYPE_ALIAS_SET(NODE) (TYPE_CHECK (NODE)->type_common.alias_set)
2321#define TYPE_ALIAS_SET_KNOWN_P(NODE) \
2322 (TYPE_CHECK (NODE)->type_common.alias_set != -1)
2326#define TYPE_ATTRIBUTES(NODE) (TYPE_CHECK (NODE)->type_common.attributes)
2329#define TYPE_ALIGN_RAW(NODE) \
2330 (TYPE_CHECK (NODE)->type_common.align)
2335#define TYPE_ALIGN(NODE) \
2336 (TYPE_ALIGN_RAW (NODE) \
2337 ? ((unsigned)1) << (TYPE_ALIGN_RAW(NODE) - 1) : 0)
2340#define SET_TYPE_ALIGN(NODE, X) \
2341 (TYPE_CHECK (NODE)->type_common.align = ffs_hwi (X))
2345#define TYPE_USER_ALIGN(NODE) (TYPE_CHECK (NODE)->base.u.bits.user_align)
2348#define TYPE_ALIGN_UNIT(NODE) (TYPE_ALIGN (NODE) / BITS_PER_UNIT)
2352#define TYPE_WARN_IF_NOT_ALIGN(NODE) \
2353 (TYPE_CHECK (NODE)->type_common.warn_if_not_align \
2354 ? ((unsigned)1) << ((NODE)->type_common.warn_if_not_align - 1) : 0)
2357#define SET_TYPE_WARN_IF_NOT_ALIGN(NODE, X) \
2358 (TYPE_CHECK (NODE)->type_common.warn_if_not_align = ffs_hwi (X))
2367#define TYPE_STUB_DECL(NODE) (TREE_CHAIN (TYPE_CHECK (NODE)))
2372#define TYPE_NO_FORCE_BLK(NODE) \
2373 (TYPE_CHECK (NODE)->type_common.no_force_blk_flag)
2376#define TYPE_VOLATILE(NODE) (TYPE_CHECK (NODE)->base.volatile_flag)
2379#define TYPE_ATOMIC(NODE) (TYPE_CHECK (NODE)->base.u.bits.atomic_flag)
2382#define TYPE_READONLY(NODE) (TYPE_CHECK (NODE)->base.readonly_flag)
2386#define TYPE_RESTRICT(NODE) (TYPE_CHECK (NODE)->type_common.restrict_flag)
2389#define TYPE_NAMELESS(NODE) (TYPE_CHECK (NODE)->base.u.bits.nameless_flag)
2392#define TYPE_ADDR_SPACE(NODE) (TYPE_CHECK (NODE)->base.u.bits.address_space)
2396#define ENCODE_QUAL_ADDR_SPACE(NUM) ((NUM & 0xFF) << 8)
2397#define DECODE_QUAL_ADDR_SPACE(X) (((X) >> 8) & 0xFF)
2400#define CLEAR_QUAL_ADDR_SPACE(X) ((X) & ~0xFF00)
2404#define KEEP_QUAL_ADDR_SPACE(X) ((X) & 0xFF00)
2407#define TYPE_QUALS(NODE) \
2408 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2409 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2410 | (TYPE_ATOMIC (NODE) * TYPE_QUAL_ATOMIC) \
2411 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT) \
2412 | (ENCODE_QUAL_ADDR_SPACE (TYPE_ADDR_SPACE (NODE)))))
2415#define TYPE_QUALS_NO_ADDR_SPACE(NODE) \
2416 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2417 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2418 | (TYPE_ATOMIC (NODE) * TYPE_QUAL_ATOMIC) \
2419 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT)))
2423#define TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC(NODE) \
2424 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2425 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2426 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT)))
2429#define TYPE_LANG_FLAG_0(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_0)
2430#define TYPE_LANG_FLAG_1(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_1)
2431#define TYPE_LANG_FLAG_2(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_2)
2432#define TYPE_LANG_FLAG_3(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_3)
2433#define TYPE_LANG_FLAG_4(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_4)
2434#define TYPE_LANG_FLAG_5(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_5)
2435#define TYPE_LANG_FLAG_6(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_6)
2436#define TYPE_LANG_FLAG_7(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_7)
2440#define TREE_VISITED(NODE) ((NODE)->base.visited)
2445#define TYPE_STRING_FLAG(NODE) \
2446 (ARRAY_OR_INTEGER_TYPE_CHECK (NODE)->type_common.string_flag)
2451#define TYPE_CXX_ODR_P(NODE) \
2452 (RECORD_OR_UNION_CHECK (NODE)->type_common.string_flag)
2456#define TYPE_VECTOR_OPAQUE(NODE) \
2457 (VECTOR_TYPE_CHECK (NODE)->base.default_def_flag)
2461#define TYPE_NEEDS_CONSTRUCTING(NODE) \
2462 (TYPE_CHECK (NODE)->type_common.needs_constructing_flag)
2468#define TYPE_TRANSPARENT_AGGR(NODE) \
2469 (RECORD_OR_UNION_CHECK (NODE)->type_common.transparent_aggr_flag)
2474#define TYPE_NONALIASED_COMPONENT(NODE) \
2475 (ARRAY_TYPE_CHECK (NODE)->type_common.transparent_aggr_flag)
2486#define TYPE_TYPELESS_STORAGE(NODE) \
2487 (TREE_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, \
2488 ARRAY_TYPE)->type_common.typeless_storage)
2492#define TYPE_PACKED(NODE) (TYPE_CHECK (NODE)->base.u.bits.packed_flag)
2497#define TYPE_CONTAINS_PLACEHOLDER_INTERNAL(NODE) \
2498 (TYPE_CHECK (NODE)->type_common.contains_placeholder_bits)
2501#define TYPE_FINAL_P(NODE) \
2502 (RECORD_OR_UNION_CHECK (NODE)->base.default_def_flag)
2513#define TYPE_SYMTAB_ADDRESS(NODE) \
2514 (TYPE_CHECK (NODE)->type_common.symtab.address)
2518#define TYPE_SYMTAB_DIE(NODE) \
2519 (TYPE_CHECK (NODE)->type_common.symtab.die)
2525#define TYPE_SYMTAB_IS_ADDRESS (0)
2526#define TYPE_SYMTAB_IS_DIE (1)
2528#define TYPE_LANG_SPECIFIC(NODE) \
2529 (TYPE_CHECK (NODE)->type_with_lang_specific.lang_specific)
2531#define TYPE_VALUES(NODE) (ENUMERAL_TYPE_CHECK (NODE)->type_non_common.values)
2532#define TYPE_DOMAIN(NODE) (ARRAY_TYPE_CHECK (NODE)->type_non_common.values)
2533#define TYPE_FIELDS(NODE) \
2534 (RECORD_OR_UNION_CHECK (NODE)->type_non_common.values)
2535#define TYPE_CACHED_VALUES(NODE) (TYPE_CHECK (NODE)->type_non_common.values)
2536#define TYPE_ARG_TYPES(NODE) \
2537 (FUNC_OR_METHOD_CHECK (NODE)->type_non_common.values)
2538#define TYPE_VALUES_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.values)
2540#define TYPE_MIN_VALUE(NODE) \
2541 (NUMERICAL_TYPE_CHECK (NODE)->type_non_common.minval)
2542#define TYPE_NEXT_PTR_TO(NODE) \
2543 (POINTER_TYPE_CHECK (NODE)->type_non_common.minval)
2544#define TYPE_NEXT_REF_TO(NODE) \
2545 (REFERENCE_TYPE_CHECK (NODE)->type_non_common.minval)
2546#define TYPE_VFIELD(NODE) \
2547 (RECORD_OR_UNION_CHECK (NODE)->type_non_common.minval)
2548#define TYPE_MIN_VALUE_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.minval)
2550#define TYPE_MAX_VALUE(NODE) \
2551 (NUMERICAL_TYPE_CHECK (NODE)->type_non_common.maxval)
2552#define TYPE_METHOD_BASETYPE(NODE) \
2553 (FUNC_OR_METHOD_CHECK (NODE)->type_non_common.maxval)
2554#define TYPE_OFFSET_BASETYPE(NODE) \
2555 (OFFSET_TYPE_CHECK (NODE)->type_non_common.maxval)
2559#define TYPE_ARRAY_MAX_SIZE(ARRAY_TYPE) \
2560 (ARRAY_TYPE_CHECK (ARRAY_TYPE)->type_non_common.maxval)
2561#define TYPE_MAX_VALUE_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.maxval)
2564#define TYPE_BINFO(NODE) (RECORD_OR_UNION_CHECK (NODE)->type_non_common.maxval)
2567#define TYPE_LANG_SLOT_1(NODE) \
2568 (TYPE_CHECK (NODE)->type_non_common.lang_1)
2588#define BINFO_VIRTUAL_P(NODE) (TREE_BINFO_CHECK (NODE)->base.static_flag)
2591#define BINFO_FLAG_0(NODE) TREE_LANG_FLAG_0 (TREE_BINFO_CHECK (NODE))
2592#define BINFO_FLAG_1(NODE) TREE_LANG_FLAG_1 (TREE_BINFO_CHECK (NODE))
2593#define BINFO_FLAG_2(NODE) TREE_LANG_FLAG_2 (TREE_BINFO_CHECK (NODE))
2594#define BINFO_FLAG_3(NODE) TREE_LANG_FLAG_3 (TREE_BINFO_CHECK (NODE))
2595#define BINFO_FLAG_4(NODE) TREE_LANG_FLAG_4 (TREE_BINFO_CHECK (NODE))
2596#define BINFO_FLAG_5(NODE) TREE_LANG_FLAG_5 (TREE_BINFO_CHECK (NODE))
2597#define BINFO_FLAG_6(NODE) TREE_LANG_FLAG_6 (TREE_BINFO_CHECK (NODE))
2600#define BINFO_TYPE(NODE) TREE_TYPE (TREE_BINFO_CHECK (NODE))
2608#define BINFO_OFFSET(NODE) (TREE_BINFO_CHECK (NODE)->binfo.offset)
2609#define BINFO_OFFSET_ZEROP(NODE) (integer_zerop (BINFO_OFFSET (NODE)))
2615#define BINFO_VTABLE(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtable)
2620#define BINFO_VIRTUALS(NODE) (TREE_BINFO_CHECK (NODE)->binfo.virtuals)
2628#define BINFO_BASE_BINFOS(NODE) (&TREE_BINFO_CHECK (NODE)->binfo.base_binfos)
2631#define BINFO_N_BASE_BINFOS(NODE) (BINFO_BASE_BINFOS (NODE)->length ())
2634#define BINFO_BASE_BINFO(NODE,N) \
2635 ((*BINFO_BASE_BINFOS (NODE))[(N)])
2636#define BINFO_BASE_ITERATE(NODE,N,B) \
2637 (BINFO_BASE_BINFOS (NODE)->iterate ((N), &(B)))
2638#define BINFO_BASE_APPEND(NODE,T) \
2639 (BINFO_BASE_BINFOS (NODE)->quick_push ((T)))
2646#define BINFO_VPTR_FIELD(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vptr_field)
2651#define BINFO_BASE_ACCESSES(NODE) \
2652 (TREE_BINFO_CHECK (NODE)->binfo.base_accesses)
2654#define BINFO_BASE_ACCESS(NODE,N) \
2655 (*BINFO_BASE_ACCESSES (NODE))[(N)]
2656#define BINFO_BASE_ACCESS_APPEND(NODE,T) \
2657 BINFO_BASE_ACCESSES (NODE)->quick_push ((T))
2661#define BINFO_SUBVTT_INDEX(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtt_subvtt)
2665#define BINFO_VPTR_INDEX(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtt_vptr)
2671#define BINFO_INHERITANCE_CHAIN(NODE) \
2672 (TREE_BINFO_CHECK (NODE)->binfo.inheritance)
2679#define SSA_VAR_P(DECL) \
2680 (TREE_CODE (DECL) == VAR_DECL \
2681 || TREE_CODE (DECL) == PARM_DECL \
2682 || TREE_CODE (DECL) == RESULT_DECL \
2683 || TREE_CODE (DECL) == SSA_NAME)
2686#define DECL_CHAIN(NODE) (TREE_CHAIN (DECL_MINIMAL_CHECK (NODE)))
2690#define DECL_NAME(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.name)
2693#define TYPE_IDENTIFIER(NODE) \
2694 (TYPE_NAME (NODE) && DECL_P (TYPE_NAME (NODE)) \
2695 ? DECL_NAME (TYPE_NAME (NODE)) : TYPE_NAME (NODE))
2698#define DECL_UID(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.uid)
2702#define DEBUG_TEMP_UID(NODE) (-DECL_UID (TREE_CHECK ((NODE), DEBUG_EXPR_DECL)))
2706#define DECL_PT_UID(NODE) \
2707 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid == -1u \
2708 ? (NODE)->decl_minimal.uid : (NODE)->decl_common.pt_uid)
2710#define SET_DECL_PT_UID(NODE, UID) \
2711 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid = (UID))
2714#define DECL_PT_UID_SET_P(NODE) \
2715 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid != -1u)
2721#define DECL_SOURCE_LOCATION(NODE) \
2722 (DECL_MINIMAL_CHECK (NODE)->decl_minimal.locus)
2723#define DECL_SOURCE_FILE(NODE) LOCATION_FILE (DECL_SOURCE_LOCATION (NODE))
2724#define DECL_SOURCE_LINE(NODE) LOCATION_LINE (DECL_SOURCE_LOCATION (NODE))
2725#define DECL_SOURCE_COLUMN(NODE) LOCATION_COLUMN (DECL_SOURCE_LOCATION (NODE))
2730#define DECL_IS_UNDECLARED_BUILTIN(DECL) \
2731 (DECL_SOURCE_LOCATION (DECL) <= BUILTINS_LOCATION)
2742#define DECL_CONTEXT(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.context)
2743#define DECL_FIELD_CONTEXT(NODE) \
2744 (FIELD_DECL_CHECK (NODE)->decl_minimal.context)
2747#define DECL_NAMELESS(NODE) (DECL_MINIMAL_CHECK (NODE)->base.u.bits.nameless_flag)
2755#define DECL_ABSTRACT_ORIGIN(NODE) \
2756 (DECL_COMMON_CHECK (NODE)->decl_common.abstract_origin)
2760#define DECL_ORIGIN(NODE) \
2761 (DECL_ABSTRACT_ORIGIN (NODE) ? DECL_ABSTRACT_ORIGIN (NODE) : (NODE))
2767#define DECL_FROM_INLINE(NODE) \
2768 (DECL_ABSTRACT_ORIGIN (NODE) != NULL_TREE \
2769 && DECL_ABSTRACT_ORIGIN (NODE) != (NODE))
2772#define DECL_ATTRIBUTES(NODE) \
2773 (DECL_COMMON_CHECK (NODE)->decl_common.attributes)
2785#define DECL_INITIAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.initial)
2791#define DECL_SIZE(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.size)
2793#define DECL_SIZE_UNIT(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.size_unit)
2794#define DECL_ALIGN_RAW(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.align)
2798#define DECL_ALIGN(NODE) \
2799 (DECL_ALIGN_RAW (NODE) \
2800 ? ((unsigned)1) << (DECL_ALIGN_RAW (NODE) - 1) : 0)
2802#define SET_DECL_ALIGN(NODE, X) \
2803 (DECL_ALIGN_RAW (NODE) = ffs_hwi (X))
2807#define DECL_WARN_IF_NOT_ALIGN_RAW(NODE) \
2808 (DECL_COMMON_CHECK (NODE)->decl_common.warn_if_not_align)
2809#define DECL_WARN_IF_NOT_ALIGN(NODE) \
2810 (DECL_WARN_IF_NOT_ALIGN_RAW (NODE) \
2811 ? ((unsigned)1) << (DECL_WARN_IF_NOT_ALIGN_RAW (NODE) - 1) : 0)
2814#define SET_DECL_WARN_IF_NOT_ALIGN(NODE, X) \
2815 (DECL_WARN_IF_NOT_ALIGN_RAW (NODE) = ffs_hwi (X))
2818#define DECL_ALIGN_UNIT(NODE) (DECL_ALIGN (NODE) / BITS_PER_UNIT)
2821#define DECL_USER_ALIGN(NODE) \
2822 (DECL_COMMON_CHECK (NODE)->base.u.bits.user_align)
2826#define DECL_MODE(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.mode)
2827#define SET_DECL_MODE(NODE, MODE) \
2828 (DECL_COMMON_CHECK (NODE)->decl_common.mode = (MODE))
2834#define DECL_UNCHECKED_FUNCTION_CODE(NODE) \
2835 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_code)
2838#define ALLOCA_FUNCTION_CODE_P(FCODE) \
2839 ((FCODE) == BUILT_IN_ALLOCA \
2840 || (FCODE) == BUILT_IN_ALLOCA_WITH_ALIGN \
2841 || (FCODE) == BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX)
2844#define CASE_BUILT_IN_ALLOCA \
2845 case BUILT_IN_ALLOCA: \
2846 case BUILT_IN_ALLOCA_WITH_ALIGN: \
2847 case BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX
2849#define DECL_FUNCTION_PERSONALITY(NODE) \
2850 (FUNCTION_DECL_CHECK (NODE)->function_decl.personality)
2856#define DECL_IGNORED_P(NODE) \
2857 (DECL_COMMON_CHECK (NODE)->decl_common.ignored_flag)
2865#define DECL_ABSTRACT_P(NODE) \
2866 (DECL_COMMON_CHECK (NODE)->decl_common.abstract_flag)
2869#define DECL_LANG_SPECIFIC(NODE) \
2870 (DECL_COMMON_CHECK (NODE)->decl_common.lang_specific)
2879#define DECL_EXTERNAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.decl_flag_1)
2888#define DECL_NONLOCAL(NODE) \
2889 (DECL_COMMON_CHECK (NODE)->decl_common.nonlocal_flag)
2894#define DECL_VIRTUAL_P(NODE) \
2895 (DECL_COMMON_CHECK (NODE)->decl_common.virtual_flag)
2898#define DECL_ARTIFICIAL(NODE) \
2899 (DECL_COMMON_CHECK (NODE)->decl_common.artificial_flag)
2902#define DECL_LANG_FLAG_0(NODE) \
2903 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_0)
2904#define DECL_LANG_FLAG_1(NODE) \
2905 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_1)
2906#define DECL_LANG_FLAG_2(NODE) \
2907 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_2)
2908#define DECL_LANG_FLAG_3(NODE) \
2909 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_3)
2910#define DECL_LANG_FLAG_4(NODE) \
2911 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_4)
2912#define DECL_LANG_FLAG_5(NODE) \
2913 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_5)
2914#define DECL_LANG_FLAG_6(NODE) \
2915 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_6)
2916#define DECL_LANG_FLAG_7(NODE) \
2917 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_7)
2918#define DECL_LANG_FLAG_8(NODE) \
2919 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_8)
2922#define SCOPE_FILE_SCOPE_P(EXP) \
2923 (! (EXP) || TREE_CODE (EXP) == TRANSLATION_UNIT_DECL)
2925#define DECL_FILE_SCOPE_P(EXP) SCOPE_FILE_SCOPE_P (DECL_CONTEXT (EXP))
2927#define TYPE_FILE_SCOPE_P(EXP) SCOPE_FILE_SCOPE_P (TYPE_CONTEXT (EXP))
2931#define DECL_PRESERVE_P(DECL) \
2932 DECL_COMMON_CHECK (DECL)->decl_common.preserve_flag
2937#define DECL_NOINIT_P(DECL) \
2939 && (lookup_attribute ("noinit", DECL_ATTRIBUTES (DECL)) != NULL_TREE))
2944#define DECL_PERSISTENT_P(DECL) \
2946 && (lookup_attribute ("persistent", DECL_ATTRIBUTES (DECL)) != NULL_TREE))
2954#define DECL_NOT_GIMPLE_REG_P(DECL) \
2955 DECL_COMMON_CHECK (DECL)->decl_common.not_gimple_reg_flag
2963#define DECL_HAS_VALUE_EXPR_P(NODE) \
2964 (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, RESULT_DECL) \
2965 ->decl_common.decl_flag_2)
2966#define DECL_VALUE_EXPR(NODE) \
2967 (decl_value_expr_lookup (DECL_WRTL_CHECK (NODE)))
2968#define SET_DECL_VALUE_EXPR(NODE, VAL) \
2969 (decl_value_expr_insert (DECL_WRTL_CHECK (NODE), VAL))
2974#define DECL_RTL(NODE) \
2975 (DECL_WRTL_CHECK (NODE)->decl_with_rtl.rtl \
2976 ? (NODE)->decl_with_rtl.rtl \
2977 : (make_decl_rtl (NODE), (NODE)->decl_with_rtl.rtl))
2980#define SET_DECL_RTL(NODE, RTL) set_decl_rtl (NODE, RTL)
2983#define HAS_RTL_P(NODE) (CODE_CONTAINS_STRUCT (TREE_CODE (NODE), TS_DECL_WRTL))
2986#define DECL_RTL_SET_P(NODE) \
2987 (HAS_RTL_P (NODE) && DECL_WRTL_CHECK (NODE)->decl_with_rtl.rtl != NULL)
2991#define COPY_DECL_RTL(SRC_DECL, DST_DECL) \
2992 (DECL_WRTL_CHECK (DST_DECL)->decl_with_rtl.rtl \
2993 = DECL_WRTL_CHECK (SRC_DECL)->decl_with_rtl.rtl)
2996#define DECL_RTL_IF_SET(NODE) (DECL_RTL_SET_P (NODE) ? DECL_RTL (NODE) : NULL)
2998#if (GCC_VERSION >= 2007)
2999#define DECL_RTL_KNOWN_SET(decl) __extension__ \
3000({ tree const __d = (decl); \
3001 gcc_checking_assert (DECL_RTL_SET_P (__d)); \
3004 &*DECL_RTL_IF_SET (__d); })
3006#define DECL_RTL_KNOWN_SET(decl) (&*DECL_RTL_IF_SET (decl))
3010#define DECL_REGISTER(NODE) (DECL_WRTL_CHECK (NODE)->decl_common.decl_flag_0)
3015#define DECL_FIELD_OFFSET(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.offset)
3021#define DECL_FIELD_BIT_OFFSET(NODE) \
3022 (FIELD_DECL_CHECK (NODE)->field_decl.bit_offset)
3027#define DECL_BIT_FIELD_TYPE(NODE) \
3028 (FIELD_DECL_CHECK (NODE)->field_decl.bit_field_type)
3032#define DECL_BIT_FIELD_REPRESENTATIVE(NODE) \
3033 (FIELD_DECL_CHECK (NODE)->field_decl.qualifier)
3037#define DECL_QUALIFIER(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.qualifier)
3043#define DECL_OFFSET_ALIGN(NODE) \
3044 (HOST_WIDE_INT_1U << FIELD_DECL_CHECK (NODE)->decl_common.off_align)
3047#define SET_DECL_OFFSET_ALIGN(NODE, X) \
3048 (FIELD_DECL_CHECK (NODE)->decl_common.off_align = ffs_hwi (X) - 1)
3053#define DECL_FCONTEXT(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.fcontext)
3056#define DECL_PACKED(NODE) (FIELD_DECL_CHECK (NODE)->base.u.bits.packed_flag)
3060#define DECL_BIT_FIELD(NODE) (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_1)
3066#define DECL_FIELD_ABI_IGNORED(NODE) \
3067 (!DECL_BIT_FIELD (NODE) && (NODE)->decl_common.decl_flag_0)
3068#define SET_DECL_FIELD_ABI_IGNORED(NODE, VAL) \
3070 gcc_checking_assert (!DECL_BIT_FIELD (NODE)); \
3071 FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_0 = (VAL); \
3079#define DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD(NODE) \
3080 (DECL_BIT_FIELD (NODE) && (NODE)->decl_common.decl_flag_0)
3081#define SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD(NODE, VAL) \
3083 gcc_checking_assert (DECL_BIT_FIELD (NODE)); \
3084 FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_0 = (VAL); \
3102#define DECL_NONADDRESSABLE_P(NODE) \
3103 (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_2)
3106#define DECL_PADDING_P(NODE) \
3107 (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_3)
3112#define DECL_NOT_FLEXARRAY(NODE) \
3113 (FIELD_DECL_CHECK (NODE)->decl_common.decl_not_flexarray)
3118#define LABEL_DECL_UID(NODE) \
3119 (LABEL_DECL_CHECK (NODE)->label_decl.label_decl_uid)
3123#define EH_LANDING_PAD_NR(NODE) \
3124 (LABEL_DECL_CHECK (NODE)->label_decl.eh_landing_pad_nr)
3128#define DECL_ARG_TYPE(NODE) (PARM_DECL_CHECK (NODE)->decl_common.initial)
3132#define DECL_INCOMING_RTL(NODE) \
3133 (PARM_DECL_CHECK (NODE)->parm_decl.incoming_rtl)
3137#define DECL_IN_SYSTEM_HEADER(NODE) \
3138 (in_system_header_at (DECL_SOURCE_LOCATION (NODE)))
3142#define DECL_DEFER_OUTPUT(NODE) \
3143 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.defer_output)
3147#define DECL_IN_TEXT_SECTION(NODE) \
3148 (VAR_DECL_CHECK (NODE)->decl_with_vis.in_text_section)
3152#define DECL_IN_CONSTANT_POOL(NODE) \
3153 (VAR_DECL_CHECK (NODE)->decl_with_vis.in_constant_pool)
3158#define DECL_COMMON(NODE) \
3159 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.common_flag)
3163#define DECL_HARD_REGISTER(NODE) \
3164 (VAR_DECL_CHECK (NODE)->decl_with_vis.hard_register)
3167#define DECL_WEAK(NODE) (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.weak_flag)
3170#define DECL_DLLIMPORT_P(NODE) \
3171 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.dllimport_flag)
3182#define DECL_COMDAT(NODE) \
3183 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.comdat_flag)
3185#define DECL_COMDAT_GROUP(NODE) \
3186 decl_comdat_group (NODE)
3190#define DECL_ONE_ONLY(NODE) (DECL_COMDAT_GROUP (NODE) != NULL_TREE \
3191 && (TREE_PUBLIC (NODE) || DECL_EXTERNAL (NODE)))
3200#define DECL_ASSEMBLER_NAME(NODE) decl_assembler_name (NODE)
3203#define DECL_ASSEMBLER_NAME_RAW(NODE) \
3204 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.assembler_name)
3208#define HAS_DECL_ASSEMBLER_NAME_P(NODE) \
3209 (CODE_CONTAINS_STRUCT (TREE_CODE (NODE), TS_DECL_WITH_VIS))
3214#define DECL_ASSEMBLER_NAME_SET_P(NODE) \
3215 (DECL_ASSEMBLER_NAME_RAW (NODE) != NULL_TREE)
3218#define SET_DECL_ASSEMBLER_NAME(NODE, NAME) \
3219 overwrite_decl_assembler_name (NODE, NAME)
3232#define COPY_DECL_ASSEMBLER_NAME(SRC_DECL, DST_DECL) \
3233 SET_DECL_ASSEMBLER_NAME (DST_DECL, DECL_ASSEMBLER_NAME_RAW (SRC_DECL))
3237#define DECL_SECTION_NAME(NODE) decl_section_name (NODE)
3241#define DECL_SEEN_IN_BIND_EXPR_P(NODE) \
3242 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.seen_in_bind_expr)
3245#define DECL_VISIBILITY(NODE) \
3246 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.visibility)
3250#define DECL_VISIBILITY_SPECIFIED(NODE) \
3251 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.visibility_specified)
3255#define DECL_TLS_MODEL(NODE) decl_tls_model (NODE)
3259#define DECL_THREAD_LOCAL_P(NODE) \
3260 ((TREE_STATIC (NODE) || DECL_EXTERNAL (NODE)) && decl_tls_model (NODE) >= TLS_MODEL_REAL)
3265#define DECL_HAS_INIT_PRIORITY_P(NODE) \
3266 (VAR_DECL_CHECK (NODE)->decl_with_vis.init_priority_p)
3272#define DECL_HAS_DEBUG_EXPR_P(NODE) \
3273 (VAR_DECL_CHECK (NODE)->decl_common.debug_expr_is_from)
3274#define DECL_DEBUG_EXPR(NODE) \
3275 (decl_debug_expr_lookup (VAR_DECL_CHECK (NODE)))
3277#define SET_DECL_DEBUG_EXPR(NODE, VAL) \
3278 (decl_debug_expr_insert (VAR_DECL_CHECK (NODE), VAL))
3287#define DECL_INIT_PRIORITY(NODE) \
3288 (decl_init_priority_lookup (NODE))
3290#define SET_DECL_INIT_PRIORITY(NODE, VAL) \
3291 (decl_init_priority_insert (NODE, VAL))
3294#define DECL_FINI_PRIORITY(NODE) \
3295 (decl_fini_priority_lookup (NODE))
3297#define SET_DECL_FINI_PRIORITY(NODE, VAL) \
3298 (decl_fini_priority_insert (NODE, VAL))
3302#define DEFAULT_INIT_PRIORITY 65535
3305#define MAX_INIT_PRIORITY 65535
3309#define MAX_RESERVED_INIT_PRIORITY 100
3312#define VAR_DECL_IS_VIRTUAL_OPERAND(NODE) \
3313 (VAR_DECL_CHECK (NODE)->base.u.bits.saturating_flag)
3316#define DECL_NONLOCAL_FRAME(NODE) \
3317 (VAR_DECL_CHECK (NODE)->base.default_def_flag)
3320#define DECL_NONALIASED(NODE) \
3321 (VAR_DECL_CHECK (NODE)->base.nothrow_flag)
3326#define DECL_MERGEABLE(NODE) \
3327 (VAR_DECL_CHECK (NODE)->decl_common.decl_flag_3)
3331#define DECL_RESULT_FLD(NODE) \
3332 (DECL_NON_COMMON_CHECK (NODE)->decl_non_common.result)
3341#define DECL_VINDEX(NODE) \
3342 (FUNCTION_DECL_CHECK (NODE)->function_decl.vindex)
3345#define DECL_RESULT(NODE) (FUNCTION_DECL_CHECK (NODE)->decl_non_common.result)
3348#define DECL_UNINLINABLE(NODE) \
3349 (FUNCTION_DECL_CHECK (NODE)->function_decl.uninlinable)
3353#define DECL_SAVED_TREE(NODE) \
3354 (FUNCTION_DECL_CHECK (NODE)->function_decl.saved_tree)
3359#define DECL_IS_MALLOC(NODE) \
3360 (FUNCTION_DECL_CHECK (NODE)->function_decl.malloc_flag)
3363#define FUNCTION_DECL_DECL_TYPE(NODE) \
3364 (NODE->function_decl.decl_type)
3384#define DECL_IS_REPLACEABLE_OPERATOR(NODE)\
3385 (FUNCTION_DECL_CHECK (NODE)->function_decl.replaceable_operator)
3390#define DECL_IS_OPERATOR_NEW_P(NODE) \
3391 (FUNCTION_DECL_DECL_TYPE (FUNCTION_DECL_CHECK (NODE)) == OPERATOR_NEW)
3393#define DECL_IS_REPLACEABLE_OPERATOR_NEW_P(NODE) \
3394 (DECL_IS_OPERATOR_NEW_P (NODE) && DECL_IS_REPLACEABLE_OPERATOR (NODE))
3396#define DECL_SET_IS_OPERATOR_NEW(NODE, VAL) \
3397 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), OPERATOR_NEW, VAL)
3401#define DECL_IS_OPERATOR_DELETE_P(NODE) \
3402 (FUNCTION_DECL_DECL_TYPE (FUNCTION_DECL_CHECK (NODE)) == OPERATOR_DELETE)
3404#define DECL_SET_IS_OPERATOR_DELETE(NODE, VAL) \
3405 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), OPERATOR_DELETE, VAL)
3409#define DECL_IS_RETURNS_TWICE(NODE) \
3410 (FUNCTION_DECL_CHECK (NODE)->function_decl.returns_twice_flag)
3417#define DECL_PURE_P(NODE) (FUNCTION_DECL_CHECK (NODE)->function_decl.pure_flag)
3425#define DECL_LOOPING_CONST_OR_PURE_P(NODE) \
3426 (FUNCTION_DECL_CHECK (NODE)->function_decl.looping_const_or_pure_flag)
3431#define DECL_IS_NOVOPS(NODE) \
3432 (FUNCTION_DECL_CHECK (NODE)->function_decl.novops_flag)
3436#define DECL_STATIC_CONSTRUCTOR(NODE) \
3437 (FUNCTION_DECL_CHECK (NODE)->function_decl.static_ctor_flag)
3439#define DECL_STATIC_DESTRUCTOR(NODE) \
3440(FUNCTION_DECL_CHECK (NODE)->function_decl.static_dtor_flag)
3444#define DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT(NODE) \
3445 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_instrument_function_entry_exit)
3449#define DECL_NO_LIMIT_STACK(NODE) \
3450 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_limit_stack)
3453#define DECL_STATIC_CHAIN(NODE) \
3454 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.regdecl_flag)
3459#define DECL_POSSIBLY_INLINED(DECL) \
3460 FUNCTION_DECL_CHECK (DECL)->function_decl.possibly_inlined
3465#define DECL_DECLARED_INLINE_P(NODE) \
3466 (FUNCTION_DECL_CHECK (NODE)->function_decl.declared_inline_flag)
3470#define DECL_NO_INLINE_WARNING_P(NODE) \
3471 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_inline_warning_flag)
3474#define BUILTIN_TM_LOAD_STORE_P(FN) \
3475 ((FN) >= BUILT_IN_TM_STORE_1 && (FN) <= BUILT_IN_TM_LOAD_RFW_LDOUBLE)
3478#define BUILTIN_TM_LOAD_P(FN) \
3479 ((FN) >= BUILT_IN_TM_LOAD_1 && (FN) <= BUILT_IN_TM_LOAD_RFW_LDOUBLE)
3482#define BUILTIN_TM_STORE_P(FN) \
3483 ((FN) >= BUILT_IN_TM_STORE_1 && (FN) <= BUILT_IN_TM_STORE_WAW_LDOUBLE)
3485#define CASE_BUILT_IN_TM_LOAD(FN) \
3486 case BUILT_IN_TM_LOAD_##FN: \
3487 case BUILT_IN_TM_LOAD_RAR_##FN: \
3488 case BUILT_IN_TM_LOAD_RAW_##FN: \
3489 case BUILT_IN_TM_LOAD_RFW_##FN
3491#define CASE_BUILT_IN_TM_STORE(FN) \
3492 case BUILT_IN_TM_STORE_##FN: \
3493 case BUILT_IN_TM_STORE_WAR_##FN: \
3494 case BUILT_IN_TM_STORE_WAW_##FN
3500#define DECL_DISREGARD_INLINE_LIMITS(NODE) \
3501 (FUNCTION_DECL_CHECK (NODE)->function_decl.disregard_inline_limits)
3507#define DECL_HAS_DEBUG_ARGS_P(NODE) \
3508 (FUNCTION_DECL_CHECK (NODE)->function_decl.has_debug_args_flag)
3512#define DECL_STRUCT_FUNCTION(NODE) \
3513 (FUNCTION_DECL_CHECK (NODE)->function_decl.f)
3516#define DECL_BUILT_IN_CLASS(NODE) \
3517 ((built_in_class) FUNCTION_DECL_CHECK (NODE)->function_decl.built_in_class)
3520#define DECL_ARGUMENTS(NODE) \
3521 (FUNCTION_DECL_CHECK (NODE)->function_decl.arguments)
3525#define DECL_FUNCTION_SPECIFIC_TARGET(NODE) \
3526 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_specific_target)
3530#define DECL_FUNCTION_SPECIFIC_OPTIMIZATION(NODE) \
3531 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_specific_optimization)
3536#define DECL_FUNCTION_VERSIONED(NODE)\
3537 (FUNCTION_DECL_CHECK (NODE)->function_decl.versioned_function)
3543#define DECL_CXX_CONSTRUCTOR_P(NODE)\
3544 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.cxx_constructor)
3548#define DECL_CXX_DESTRUCTOR_P(NODE)\
3549 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.cxx_destructor)
3552#define DECL_LAMBDA_FUNCTION_P(NODE) \
3553 (FUNCTION_DECL_DECL_TYPE (FUNCTION_DECL_CHECK (NODE)) == LAMBDA_FUNCTION)
3555#define DECL_SET_LAMBDA_FUNCTION(NODE, VAL) \
3556 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), LAMBDA_FUNCTION, VAL)
3560#define DECL_FINAL_P(NODE)\
3561 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.final)
3564#define TRANSLATION_UNIT_LANGUAGE(NODE) \
3565 (TRANSLATION_UNIT_DECL_CHECK (NODE)->translation_unit_decl.language)
3570#define DECL_ORIGINAL_TYPE(NODE) \
3571 (TYPE_DECL_CHECK (NODE)->decl_non_common.result)
3576#define TYPE_DECL_SUPPRESS_DEBUG(NODE) \
3577 (TYPE_DECL_CHECK (NODE)->decl_common.decl_flag_1)
3581#define IMPORTED_DECL_ASSOCIATED_DECL(NODE) \
3582(DECL_INITIAL (IMPORTED_DECL_CHECK (NODE)))
3586#define NAMELIST_DECL_ASSOCIATED_DECL(NODE) \
3587 (DECL_INITIAL (NODE))
3595#define STATEMENT_LIST_HEAD(NODE) \
3596 (STATEMENT_LIST_CHECK (NODE)->stmt_list.head)
3597#define STATEMENT_LIST_TAIL(NODE) \
3598 (STATEMENT_LIST_CHECK (NODE)->stmt_list.tail)
3600#define TREE_OPTIMIZATION(NODE) \
3601 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.opts)
3603#define TREE_OPTIMIZATION_OPTABS(NODE) \
3604 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.optabs)
3606#define TREE_OPTIMIZATION_BASE_OPTABS(NODE) \
3607 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.base_optabs)
3612 struct gcc_options *opts_set);
3614#define TREE_TARGET_OPTION(NODE) \
3615 (TARGET_OPTION_NODE_CHECK (NODE)->target_option.opts)
3617#define TREE_TARGET_GLOBALS(NODE) \
3618 (TARGET_OPTION_NODE_CHECK (NODE)->target_option.globals)
3623 struct gcc_options *opts_set);
3627#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007)
3630tree_check (
tree __t,
const char *__f,
int __l,
const char *__g,
tree_code __c)
3633 tree_check_failed (__t, __f, __l, __g, __c, 0);
3638tree_not_check (
tree __t,
const char *__f,
int __l,
const char *__g,
3642 tree_not_check_failed (__t, __f, __l, __g, __c, 0);
3647tree_check2 (
tree __t,
const char *__f,
int __l,
const char *__g,
3652 tree_check_failed (__t, __f, __l, __g, __c1, __c2, 0);
3657tree_not_check2 (
tree __t,
const char *__f,
int __l,
const char *__g,
3662 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, 0);
3667tree_check3 (
tree __t,
const char *__f,
int __l,
const char *__g,
3673 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, 0);
3678tree_not_check3 (
tree __t,
const char *__f,
int __l,
const char *__g,
3684 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, 0);
3689tree_check4 (
tree __t,
const char *__f,
int __l,
const char *__g,
3697 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, 0);
3702tree_not_check4 (
tree __t,
const char *__f,
int __l,
const char *__g,
3710 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, 0);
3715tree_check5 (
tree __t,
const char *__f,
int __l,
const char *__g,
3724 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, 0);
3729tree_not_check5 (
tree __t,
const char *__f,
int __l,
const char *__g,
3738 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, 0);
3743tree_check6 (
tree __t,
const char *__f,
int __l,
const char *__g,
3753 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, __c6,
3759tree_not_check6 (
tree __t,
const char *__f,
int __l,
const char *__g,
3769 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5,
3776 const char *__f,
int __l,
const char *__g)
3779 tree_contains_struct_check_failed (__t, __s, __f, __l, __g);
3785 const char *__f,
int __l,
const char *__g)
3788 tree_class_check_failed (__t, __class, __f, __l, __g);
3793tree_range_check (
tree __t,
3795 const char *__f,
int __l,
const char *__g)
3798 tree_range_check_failed (__t, __f, __l, __g, __code1, __code2);
3804 const char *__f,
int __l,
const char *__g)
3807 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
3808 if (__t->omp_clause.code != __code)
3809 omp_clause_check_failed (__t, __f, __l, __g, __code);
3814omp_clause_range_check (
tree __t,
3817 const char *__f,
int __l,
const char *__g)
3820 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
3821 if ((
int) __t->omp_clause.code < (
int) __code1
3822 || (
int) __t->omp_clause.code > (
int) __code2)
3823 omp_clause_range_check_failed (__t, __f, __l, __g, __code1, __code2);
3830expr_check (
tree __t,
const char *__f,
int __l,
const char *__g)
3841non_type_check (
tree __t,
const char *__f,
int __l,
const char *__g)
3844 tree_not_class_check_failed (__t,
tcc_type, __f, __l, __g);
3848inline const HOST_WIDE_INT *
3849tree_int_cst_elt_check (
const_tree __t,
int __i,
3850 const char *__f,
int __l,
const char *__g)
3853 tree_check_failed (__t, __f, __l, __g, INTEGER_CST, 0);
3854 if (__i < 0 || __i >= __t->base.u.int_length.extended)
3855 tree_int_cst_elt_check_failed (__i, __t->base.u.int_length.extended,
3860inline HOST_WIDE_INT *
3861tree_int_cst_elt_check (
tree __t,
int __i,
3862 const char *__f,
int __l,
const char *__g)
3865 tree_check_failed (__t, __f, __l, __g, INTEGER_CST, 0);
3866 if (__i < 0 || __i >= __t->base.u.int_length.extended)
3867 tree_int_cst_elt_check_failed (__i, __t->base.u.int_length.extended,
3874# if GCC_VERSION >= 4006
3875#pragma GCC diagnostic push
3876#pragma GCC diagnostic ignored "-Wstrict-overflow"
3880tree_vec_elt_check (
tree __t,
int __i,
3881 const char *__f,
int __l,
const char *__g)
3884 tree_check_failed (__t, __f, __l, __g, TREE_VEC, 0);
3885 if (__i < 0 || __i >= __t->base.u.length)
3886 tree_vec_elt_check_failed (__i, __t->base.u.length, __f, __l, __g);
3890# if GCC_VERSION >= 4006
3891#pragma GCC diagnostic pop
3895omp_clause_elt_check (
tree __t,
int __i,
3896 const char *__f,
int __l,
const char *__g)
3899 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
3901 omp_clause_operand_check_failed (__i, __t, __f, __l, __g);
3902 return &__t->omp_clause.ops[__i];
3908any_integral_type_check (
tree __t,
const char *__f,
int __l,
const char *__g)
3911 tree_check_failed (__t, __f, __l, __g, BOOLEAN_TYPE, ENUMERAL_TYPE,
3912 INTEGER_TYPE, BITINT_TYPE, 0);
3917tree_check (
const_tree __t,
const char *__f,
int __l,
const char *__g,
3921 tree_check_failed (__t, __f, __l, __g, __c, 0);
3926tree_not_check (
const_tree __t,
const char *__f,
int __l,
const char *__g,
3930 tree_not_check_failed (__t, __f, __l, __g, __c, 0);
3935tree_check2 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
3940 tree_check_failed (__t, __f, __l, __g, __c1, __c2, 0);
3945tree_not_check2 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
3950 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, 0);
3955tree_check3 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
3961 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, 0);
3966tree_not_check3 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
3972 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, 0);
3977tree_check4 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
3985 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, 0);
3990tree_not_check4 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
3998 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, 0);
4003tree_check5 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4012 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, 0);
4017tree_not_check5 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4026 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, 0);
4031tree_check6 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4041 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, __c6,
4047tree_not_check6 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4057 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5,
4064 const char *__f,
int __l,
const char *__g)
4067 tree_contains_struct_check_failed (__t, __s, __f, __l, __g);
4073 const char *__f,
int __l,
const char *__g)
4076 tree_class_check_failed (__t, __class, __f, __l, __g);
4083 const char *__f,
int __l,
const char *__g)
4086 tree_range_check_failed (__t, __f, __l, __g, __code1, __code2);
4092 const char *__f,
int __l,
const char *__g)
4095 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
4096 if (__t->omp_clause.code != __code)
4097 omp_clause_check_failed (__t, __f, __l, __g, __code);
4105 const char *__f,
int __l,
const char *__g)
4108 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
4109 if ((
int) __t->omp_clause.code < (
int) __code1
4110 || (
int) __t->omp_clause.code > (
int) __code2)
4111 omp_clause_range_check_failed (__t, __f, __l, __g, __code1, __code2);
4116expr_check (
const_tree __t,
const char *__f,
int __l,
const char *__g)
4125non_type_check (
const_tree __t,
const char *__f,
int __l,
const char *__g)
4128 tree_not_class_check_failed (__t,
tcc_type, __f, __l, __g);
4132# if GCC_VERSION >= 4006
4133#pragma GCC diagnostic push
4134#pragma GCC diagnostic ignored "-Wstrict-overflow"
4139 const char *__f,
int __l,
const char *__g)
4142 tree_check_failed (__t, __f, __l, __g, TREE_VEC, 0);
4143 if (__i < 0 || __i >= __t->base.u.length)
4144 tree_vec_elt_check_failed (__i, __t->base.u.length, __f, __l, __g);
4149# if GCC_VERSION >= 4006
4150#pragma GCC diagnostic pop
4154omp_clause_elt_check (
const_tree __t,
int __i,
4155 const char *__f,
int __l,
const char *__g)
4158 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
4160 omp_clause_operand_check_failed (__i, __t, __f, __l, __g);
4165any_integral_type_check (
const_tree __t,
const char *__f,
int __l,
4169 tree_check_failed (__t, __f, __l, __g, BOOLEAN_TYPE, ENUMERAL_TYPE,
4170 INTEGER_TYPE, BITINT_TYPE, 0);
4188#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007)
4192tree_operand_check (
tree __t,
int __i,
4193 const char *__f,
int __l,
const char *__g)
4197 tree_operand_check_failed (__i, __u, __f, __l, __g);
4202tree_operand_check_code (
tree __t,
enum tree_code __code,
int __i,
4203 const char *__f,
int __l,
const char *__g)
4206 tree_check_failed (__t, __f, __l, __g, __code, 0);
4208 tree_operand_check_failed (__i, __t, __f, __l, __g);
4209 return &__t->exp.operands[__i];
4214 const char *__f,
int __l,
const char *__g)
4218 tree_operand_check_failed (__i, __u, __f, __l, __g);
4224 const char *__f,
int __l,
const char *__g)
4227 tree_check_failed (__t, __f, __l, __g, __code, 0);
4229 tree_operand_check_failed (__i, __t, __f, __l, __g);
4255 unsigned int precision = VECTOR_TYPE_CHECK (node)->type_common.precision;
4262 if (precision & 0x100)
4277 unsigned HOST_WIDE_INT coeff0 = subparts.
coeffs[0];
4297 unsigned HOST_WIDE_INT coeff1 = subparts.
coeffs[1];
4298 gcc_assert (coeff1 == 0 || coeff1 == coeff0);
4299 VECTOR_TYPE_CHECK (node)->type_common.precision
4300 = index + (coeff1 != 0 ? 0x100 : 0);
4303 VECTOR_TYPE_CHECK (node)->type_common.precision = index;
4312 unsigned HOST_WIDE_INT coeff0 = subparts.
coeffs[0];
4317 unsigned HOST_WIDE_INT coeff1 = subparts.
coeffs[1];
4318 if (coeff1 != 0 && coeff1 != coeff0)
4329 const tree_function_decl &fndecl = FUNCTION_DECL_CHECK (
decl)->function_decl;
4340 const tree_function_decl &fndecl = FUNCTION_DECL_CHECK (
decl)->function_decl;
4342 return fndecl.function_code;
4351 const tree_function_decl &fndecl = FUNCTION_DECL_CHECK (
decl)->function_decl;
4353 return fndecl.function_code;
4362 tree_function_decl &fndecl = FUNCTION_DECL_CHECK (
decl)->function_decl;
4363 fndecl.built_in_class = fclass;
4364 fndecl.function_code = fcode;
4372 tree_function_decl &newfndecl = FUNCTION_DECL_CHECK (newdecl)->function_decl;
4373 const tree_function_decl &oldfndecl
4374 = FUNCTION_DECL_CHECK (olddecl)->function_decl;
4375 newfndecl.built_in_class = oldfndecl.built_in_class;
4376 newfndecl.function_code = oldfndecl.function_code;
4383#define EXPR_LOCATION_WRAPPER_P(NODE) \
4384 (TREE_CHECK2(NODE, NON_LVALUE_EXPR, VIEW_CONVERT_EXPR)->base.public_flag)
4418#define error_mark_node global_trees[TI_ERROR_MARK]
4420#define intQI_type_node global_trees[TI_INTQI_TYPE]
4421#define intHI_type_node global_trees[TI_INTHI_TYPE]
4422#define intSI_type_node global_trees[TI_INTSI_TYPE]
4423#define intDI_type_node global_trees[TI_INTDI_TYPE]
4424#define intTI_type_node global_trees[TI_INTTI_TYPE]
4426#define unsigned_intQI_type_node global_trees[TI_UINTQI_TYPE]
4427#define unsigned_intHI_type_node global_trees[TI_UINTHI_TYPE]
4428#define unsigned_intSI_type_node global_trees[TI_UINTSI_TYPE]
4429#define unsigned_intDI_type_node global_trees[TI_UINTDI_TYPE]
4430#define unsigned_intTI_type_node global_trees[TI_UINTTI_TYPE]
4432#define atomicQI_type_node global_trees[TI_ATOMICQI_TYPE]
4433#define atomicHI_type_node global_trees[TI_ATOMICHI_TYPE]
4434#define atomicSI_type_node global_trees[TI_ATOMICSI_TYPE]
4435#define atomicDI_type_node global_trees[TI_ATOMICDI_TYPE]
4436#define atomicTI_type_node global_trees[TI_ATOMICTI_TYPE]
4438#define uint16_type_node global_trees[TI_UINT16_TYPE]
4439#define uint32_type_node global_trees[TI_UINT32_TYPE]
4440#define uint64_type_node global_trees[TI_UINT64_TYPE]
4441#define uint128_type_node global_trees[TI_UINT128_TYPE]
4443#define void_node global_trees[TI_VOID]
4445#define integer_zero_node global_trees[TI_INTEGER_ZERO]
4446#define integer_one_node global_trees[TI_INTEGER_ONE]
4447#define integer_minus_one_node global_trees[TI_INTEGER_MINUS_ONE]
4448#define size_zero_node global_trees[TI_SIZE_ZERO]
4449#define size_one_node global_trees[TI_SIZE_ONE]
4450#define bitsize_zero_node global_trees[TI_BITSIZE_ZERO]
4451#define bitsize_one_node global_trees[TI_BITSIZE_ONE]
4452#define bitsize_unit_node global_trees[TI_BITSIZE_UNIT]
4455#define access_public_node global_trees[TI_PUBLIC]
4456#define access_protected_node global_trees[TI_PROTECTED]
4457#define access_private_node global_trees[TI_PRIVATE]
4459#define null_pointer_node global_trees[TI_NULL_POINTER]
4461#define float_type_node global_trees[TI_FLOAT_TYPE]
4462#define double_type_node global_trees[TI_DOUBLE_TYPE]
4463#define long_double_type_node global_trees[TI_LONG_DOUBLE_TYPE]
4464#define bfloat16_type_node global_trees[TI_BFLOAT16_TYPE]
4467#define FLOATN_TYPE_NODE(IDX) global_trees[TI_FLOATN_TYPE_FIRST + (IDX)]
4468#define FLOATN_NX_TYPE_NODE(IDX) global_trees[TI_FLOATN_NX_TYPE_FIRST + (IDX)]
4469#define FLOATNX_TYPE_NODE(IDX) global_trees[TI_FLOATNX_TYPE_FIRST + (IDX)]
4474#define float16_type_node global_trees[TI_FLOAT16_TYPE]
4475#define float32_type_node global_trees[TI_FLOAT32_TYPE]
4476#define float64_type_node global_trees[TI_FLOAT64_TYPE]
4477#define float128_type_node global_trees[TI_FLOAT128_TYPE]
4478#define float32x_type_node global_trees[TI_FLOAT32X_TYPE]
4479#define float64x_type_node global_trees[TI_FLOAT64X_TYPE]
4480#define float128x_type_node global_trees[TI_FLOAT128X_TYPE]
4484#define float128t_type_node global_trees[TI_FLOAT128T_TYPE]
4486#define float_ptr_type_node global_trees[TI_FLOAT_PTR_TYPE]
4487#define double_ptr_type_node global_trees[TI_DOUBLE_PTR_TYPE]
4488#define long_double_ptr_type_node global_trees[TI_LONG_DOUBLE_PTR_TYPE]
4489#define integer_ptr_type_node global_trees[TI_INTEGER_PTR_TYPE]
4491#define complex_integer_type_node global_trees[TI_COMPLEX_INTEGER_TYPE]
4492#define complex_float_type_node global_trees[TI_COMPLEX_FLOAT_TYPE]
4493#define complex_double_type_node global_trees[TI_COMPLEX_DOUBLE_TYPE]
4494#define complex_long_double_type_node global_trees[TI_COMPLEX_LONG_DOUBLE_TYPE]
4496#define COMPLEX_FLOATN_NX_TYPE_NODE(IDX) global_trees[TI_COMPLEX_FLOATN_NX_TYPE_FIRST + (IDX)]
4498#define void_type_node global_trees[TI_VOID_TYPE]
4500#define ptr_type_node global_trees[TI_PTR_TYPE]
4502#define const_ptr_type_node global_trees[TI_CONST_PTR_TYPE]
4504#define size_type_node global_trees[TI_SIZE_TYPE]
4505#define pid_type_node global_trees[TI_PID_TYPE]
4506#define ptrdiff_type_node global_trees[TI_PTRDIFF_TYPE]
4507#define va_list_type_node global_trees[TI_VA_LIST_TYPE]
4508#define va_list_gpr_counter_field global_trees[TI_VA_LIST_GPR_COUNTER_FIELD]
4509#define va_list_fpr_counter_field global_trees[TI_VA_LIST_FPR_COUNTER_FIELD]
4511#define fileptr_type_node global_trees[TI_FILEPTR_TYPE]
4513#define const_tm_ptr_type_node global_trees[TI_CONST_TM_PTR_TYPE]
4515#define fenv_t_ptr_type_node global_trees[TI_FENV_T_PTR_TYPE]
4516#define const_fenv_t_ptr_type_node global_trees[TI_CONST_FENV_T_PTR_TYPE]
4518#define fexcept_t_ptr_type_node global_trees[TI_FEXCEPT_T_PTR_TYPE]
4519#define const_fexcept_t_ptr_type_node global_trees[TI_CONST_FEXCEPT_T_PTR_TYPE]
4520#define pointer_sized_int_node global_trees[TI_POINTER_SIZED_TYPE]
4522#define boolean_type_node global_trees[TI_BOOLEAN_TYPE]
4523#define boolean_false_node global_trees[TI_BOOLEAN_FALSE]
4524#define boolean_true_node global_trees[TI_BOOLEAN_TRUE]
4527#define dfloat32_type_node global_trees[TI_DFLOAT32_TYPE]
4528#define dfloat64_type_node global_trees[TI_DFLOAT64_TYPE]
4529#define dfloat128_type_node global_trees[TI_DFLOAT128_TYPE]
4532#define sat_short_fract_type_node global_trees[TI_SAT_SFRACT_TYPE]
4533#define sat_fract_type_node global_trees[TI_SAT_FRACT_TYPE]
4534#define sat_long_fract_type_node global_trees[TI_SAT_LFRACT_TYPE]
4535#define sat_long_long_fract_type_node global_trees[TI_SAT_LLFRACT_TYPE]
4536#define sat_unsigned_short_fract_type_node \
4537 global_trees[TI_SAT_USFRACT_TYPE]
4538#define sat_unsigned_fract_type_node global_trees[TI_SAT_UFRACT_TYPE]
4539#define sat_unsigned_long_fract_type_node \
4540 global_trees[TI_SAT_ULFRACT_TYPE]
4541#define sat_unsigned_long_long_fract_type_node \
4542 global_trees[TI_SAT_ULLFRACT_TYPE]
4543#define short_fract_type_node global_trees[TI_SFRACT_TYPE]
4544#define fract_type_node global_trees[TI_FRACT_TYPE]
4545#define long_fract_type_node global_trees[TI_LFRACT_TYPE]
4546#define long_long_fract_type_node global_trees[TI_LLFRACT_TYPE]
4547#define unsigned_short_fract_type_node global_trees[TI_USFRACT_TYPE]
4548#define unsigned_fract_type_node global_trees[TI_UFRACT_TYPE]
4549#define unsigned_long_fract_type_node global_trees[TI_ULFRACT_TYPE]
4550#define unsigned_long_long_fract_type_node \
4551 global_trees[TI_ULLFRACT_TYPE]
4552#define sat_short_accum_type_node global_trees[TI_SAT_SACCUM_TYPE]
4553#define sat_accum_type_node global_trees[TI_SAT_ACCUM_TYPE]
4554#define sat_long_accum_type_node global_trees[TI_SAT_LACCUM_TYPE]
4555#define sat_long_long_accum_type_node global_trees[TI_SAT_LLACCUM_TYPE]
4556#define sat_unsigned_short_accum_type_node \
4557 global_trees[TI_SAT_USACCUM_TYPE]
4558#define sat_unsigned_accum_type_node global_trees[TI_SAT_UACCUM_TYPE]
4559#define sat_unsigned_long_accum_type_node \
4560 global_trees[TI_SAT_ULACCUM_TYPE]
4561#define sat_unsigned_long_long_accum_type_node \
4562 global_trees[TI_SAT_ULLACCUM_TYPE]
4563#define short_accum_type_node global_trees[TI_SACCUM_TYPE]
4564#define accum_type_node global_trees[TI_ACCUM_TYPE]
4565#define long_accum_type_node global_trees[TI_LACCUM_TYPE]
4566#define long_long_accum_type_node global_trees[TI_LLACCUM_TYPE]
4567#define unsigned_short_accum_type_node global_trees[TI_USACCUM_TYPE]
4568#define unsigned_accum_type_node global_trees[TI_UACCUM_TYPE]
4569#define unsigned_long_accum_type_node global_trees[TI_ULACCUM_TYPE]
4570#define unsigned_long_long_accum_type_node \
4571 global_trees[TI_ULLACCUM_TYPE]
4572#define qq_type_node global_trees[TI_QQ_TYPE]
4573#define hq_type_node global_trees[TI_HQ_TYPE]
4574#define sq_type_node global_trees[TI_SQ_TYPE]
4575#define dq_type_node global_trees[TI_DQ_TYPE]
4576#define tq_type_node global_trees[TI_TQ_TYPE]
4577#define uqq_type_node global_trees[TI_UQQ_TYPE]
4578#define uhq_type_node global_trees[TI_UHQ_TYPE]
4579#define usq_type_node global_trees[TI_USQ_TYPE]
4580#define udq_type_node global_trees[TI_UDQ_TYPE]
4581#define utq_type_node global_trees[TI_UTQ_TYPE]
4582#define sat_qq_type_node global_trees[TI_SAT_QQ_TYPE]
4583#define sat_hq_type_node global_trees[TI_SAT_HQ_TYPE]
4584#define sat_sq_type_node global_trees[TI_SAT_SQ_TYPE]
4585#define sat_dq_type_node global_trees[TI_SAT_DQ_TYPE]
4586#define sat_tq_type_node global_trees[TI_SAT_TQ_TYPE]
4587#define sat_uqq_type_node global_trees[TI_SAT_UQQ_TYPE]
4588#define sat_uhq_type_node global_trees[TI_SAT_UHQ_TYPE]
4589#define sat_usq_type_node global_trees[TI_SAT_USQ_TYPE]
4590#define sat_udq_type_node global_trees[TI_SAT_UDQ_TYPE]
4591#define sat_utq_type_node global_trees[TI_SAT_UTQ_TYPE]
4592#define ha_type_node global_trees[TI_HA_TYPE]
4593#define sa_type_node global_trees[TI_SA_TYPE]
4594#define da_type_node global_trees[TI_DA_TYPE]
4595#define ta_type_node global_trees[TI_TA_TYPE]
4596#define uha_type_node global_trees[TI_UHA_TYPE]
4597#define usa_type_node global_trees[TI_USA_TYPE]
4598#define uda_type_node global_trees[TI_UDA_TYPE]
4599#define uta_type_node global_trees[TI_UTA_TYPE]
4600#define sat_ha_type_node global_trees[TI_SAT_HA_TYPE]
4601#define sat_sa_type_node global_trees[TI_SAT_SA_TYPE]
4602#define sat_da_type_node global_trees[TI_SAT_DA_TYPE]
4603#define sat_ta_type_node global_trees[TI_SAT_TA_TYPE]
4604#define sat_uha_type_node global_trees[TI_SAT_UHA_TYPE]
4605#define sat_usa_type_node global_trees[TI_SAT_USA_TYPE]
4606#define sat_uda_type_node global_trees[TI_SAT_UDA_TYPE]
4607#define sat_uta_type_node global_trees[TI_SAT_UTA_TYPE]
4614#define void_list_node global_trees[TI_VOID_LIST_NODE]
4616#define main_identifier_node global_trees[TI_MAIN_IDENTIFIER]
4617#define MAIN_NAME_P(NODE) \
4618 (IDENTIFIER_NODE_CHECK (NODE) == main_identifier_node)
4622#define optimization_default_node global_trees[TI_OPTIMIZATION_DEFAULT]
4623#define optimization_current_node global_trees[TI_OPTIMIZATION_CURRENT]
4626#define target_option_default_node global_trees[TI_TARGET_OPTION_DEFAULT]
4627#define target_option_current_node global_trees[TI_TARGET_OPTION_CURRENT]
4631#define current_target_pragma global_trees[TI_CURRENT_TARGET_PRAGMA]
4632#define current_optimize_pragma global_trees[TI_CURRENT_OPTIMIZE_PRAGMA]
4635#define chrec_not_analyzed_yet NULL_TREE
4636#define chrec_dont_know global_trees[TI_CHREC_DONT_KNOW]
4637#define chrec_known global_trees[TI_CHREC_KNOWN]
4639#define char_type_node integer_types[itk_char]
4640#define signed_char_type_node integer_types[itk_signed_char]
4641#define unsigned_char_type_node integer_types[itk_unsigned_char]
4642#define short_integer_type_node integer_types[itk_short]
4643#define short_unsigned_type_node integer_types[itk_unsigned_short]
4644#define integer_type_node integer_types[itk_int]
4645#define unsigned_type_node integer_types[itk_unsigned_int]
4646#define long_integer_type_node integer_types[itk_long]
4647#define long_unsigned_type_node integer_types[itk_unsigned_long]
4648#define long_long_integer_type_node integer_types[itk_long_long]
4649#define long_long_unsigned_type_node integer_types[itk_unsigned_long_long]
4863#define build_call_array(T1,T2,N,T3)\
4864 build_call_array_loc (UNKNOWN_LOCATION, T1, T2, N, T3)
4915#define build_function_type_vec(RET, V) \
4916 build_function_type_array (RET, vec_safe_length (V), vec_safe_address (V))
4917#define build_varargs_function_type_vec(RET, V) \
4918 build_varargs_function_type_array (RET, vec_safe_length (V), \
4919 vec_safe_address (V))
4941 ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE;
4943 ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE;
4945 ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE;
4947 ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE;
4948#if !defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 4003)
4949extern inline __attribute__ ((__gnu_inline__)) HOST_WIDE_INT
4956extern inline __attribute__ ((__gnu_inline__))
unsigned HOST_WIDE_INT
4962#if NUM_POLY_INT_COEFFS == 1
4963extern inline __attribute__ ((__gnu_inline__))
poly_int64
4970extern inline __attribute__ ((__gnu_inline__))
poly_uint64