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)
442 const char *,
int,
const char *)
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))
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)
1433#define ASM_INPUT_P(NODE) (ASM_EXPR_CHECK (NODE)->base.static_flag)
1434#define ASM_VOLATILE_P(NODE) (ASM_EXPR_CHECK (NODE)->base.public_flag)
1437#define ASM_INLINE_P(NODE) (ASM_EXPR_CHECK (NODE)->base.protected_flag)
1440#define COND_EXPR_COND(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 0))
1441#define COND_EXPR_THEN(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 1))
1442#define COND_EXPR_ELSE(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 2))
1445#define CHREC_LEFT(NODE) TREE_OPERAND (POLYNOMIAL_CHREC_CHECK (NODE), 0)
1446#define CHREC_RIGHT(NODE) TREE_OPERAND (POLYNOMIAL_CHREC_CHECK (NODE), 1)
1447#define CHREC_VARIABLE(NODE) POLYNOMIAL_CHREC_CHECK (NODE)->base.u.chrec_var
1449#define CHREC_NOWRAP(NODE) POLYNOMIAL_CHREC_CHECK (NODE)->base.nothrow_flag
1453#define LABEL_EXPR_LABEL(NODE) TREE_OPERAND (LABEL_EXPR_CHECK (NODE), 0)
1456#define CATCH_TYPES(NODE) TREE_OPERAND (CATCH_EXPR_CHECK (NODE), 0)
1457#define CATCH_BODY(NODE) TREE_OPERAND (CATCH_EXPR_CHECK (NODE), 1)
1460#define EH_FILTER_TYPES(NODE) TREE_OPERAND (EH_FILTER_EXPR_CHECK (NODE), 0)
1461#define EH_FILTER_FAILURE(NODE) TREE_OPERAND (EH_FILTER_EXPR_CHECK (NODE), 1)
1464#define OBJ_TYPE_REF_EXPR(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 0)
1465#define OBJ_TYPE_REF_OBJECT(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 1)
1466#define OBJ_TYPE_REF_TOKEN(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 2)
1469#define CALL_EXPR_FN(NODE) TREE_OPERAND (CALL_EXPR_CHECK (NODE), 1)
1470#define CALL_EXPR_STATIC_CHAIN(NODE) TREE_OPERAND (CALL_EXPR_CHECK (NODE), 2)
1471#define CALL_EXPR_ARG(NODE, I) TREE_OPERAND (CALL_EXPR_CHECK (NODE), (I) + 3)
1472#define call_expr_nargs(NODE) (VL_EXP_OPERAND_LENGTH (NODE) - 3)
1473#define CALL_EXPR_IFN(NODE) (CALL_EXPR_CHECK (NODE)->base.u.ifn)
1481#define CALL_EXPR_ARGP(NODE) \
1482 (&(TREE_OPERAND (CALL_EXPR_CHECK (NODE), 0)) + 3)
1485#define TRANSACTION_EXPR_BODY(NODE) \
1486 TREE_OPERAND (TRANSACTION_EXPR_CHECK (NODE), 0)
1487#define TRANSACTION_EXPR_OUTER(NODE) \
1488 (TRANSACTION_EXPR_CHECK (NODE)->base.static_flag)
1489#define TRANSACTION_EXPR_RELAXED(NODE) \
1490 (TRANSACTION_EXPR_CHECK (NODE)->base.public_flag)
1496#define OMP_BODY(NODE) \
1497 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_PARALLEL, OMP_MASTER), 0)
1498#define OMP_CLAUSES(NODE) \
1499 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_PARALLEL, OMP_SCAN), 1)
1502#define OMP_STANDALONE_CLAUSES(NODE) \
1503 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_CACHE, OMP_TARGET_EXIT_DATA), 0)
1505#define OACC_DATA_BODY(NODE) \
1506 TREE_OPERAND (OACC_DATA_CHECK (NODE), 0)
1507#define OACC_DATA_CLAUSES(NODE) \
1508 TREE_OPERAND (OACC_DATA_CHECK (NODE), 1)
1510#define OACC_HOST_DATA_BODY(NODE) \
1511 TREE_OPERAND (OACC_HOST_DATA_CHECK (NODE), 0)
1512#define OACC_HOST_DATA_CLAUSES(NODE) \
1513 TREE_OPERAND (OACC_HOST_DATA_CHECK (NODE), 1)
1515#define OACC_CACHE_CLAUSES(NODE) \
1516 TREE_OPERAND (OACC_CACHE_CHECK (NODE), 0)
1518#define OACC_DECLARE_CLAUSES(NODE) \
1519 TREE_OPERAND (OACC_DECLARE_CHECK (NODE), 0)
1521#define OACC_ENTER_DATA_CLAUSES(NODE) \
1522 TREE_OPERAND (OACC_ENTER_DATA_CHECK (NODE), 0)
1524#define OACC_EXIT_DATA_CLAUSES(NODE) \
1525 TREE_OPERAND (OACC_EXIT_DATA_CHECK (NODE), 0)
1527#define OACC_UPDATE_CLAUSES(NODE) \
1528 TREE_OPERAND (OACC_UPDATE_CHECK (NODE), 0)
1530#define OMP_PARALLEL_BODY(NODE) TREE_OPERAND (OMP_PARALLEL_CHECK (NODE), 0)
1531#define OMP_PARALLEL_CLAUSES(NODE) TREE_OPERAND (OMP_PARALLEL_CHECK (NODE), 1)
1533#define OMP_TASK_BODY(NODE) TREE_OPERAND (OMP_TASK_CHECK (NODE), 0)
1534#define OMP_TASK_CLAUSES(NODE) TREE_OPERAND (OMP_TASK_CHECK (NODE), 1)
1536#define OMP_TASKREG_CHECK(NODE) TREE_RANGE_CHECK (NODE, OMP_PARALLEL, OMP_TASK)
1537#define OMP_TASKREG_BODY(NODE) TREE_OPERAND (OMP_TASKREG_CHECK (NODE), 0)
1538#define OMP_TASKREG_CLAUSES(NODE) TREE_OPERAND (OMP_TASKREG_CHECK (NODE), 1)
1540#define OMP_LOOPING_CHECK(NODE) TREE_RANGE_CHECK (NODE, OMP_FOR, OACC_LOOP)
1541#define OMP_FOR_BODY(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 0)
1542#define OMP_FOR_CLAUSES(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 1)
1543#define OMP_FOR_INIT(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 2)
1544#define OMP_FOR_COND(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 3)
1545#define OMP_FOR_INCR(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 4)
1546#define OMP_FOR_PRE_BODY(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 5)
1547#define OMP_FOR_ORIG_DECLS(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 6)
1549#define OMP_SECTIONS_BODY(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 0)
1550#define OMP_SECTIONS_CLAUSES(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 1)
1552#define OMP_SECTION_BODY(NODE) TREE_OPERAND (OMP_SECTION_CHECK (NODE), 0)
1554#define OMP_STRUCTURED_BLOCK_BODY(NODE) \
1555 TREE_OPERAND (OMP_STRUCTURED_BLOCK_CHECK (NODE), 0)
1557#define OMP_SINGLE_BODY(NODE) TREE_OPERAND (OMP_SINGLE_CHECK (NODE), 0)
1558#define OMP_SINGLE_CLAUSES(NODE) TREE_OPERAND (OMP_SINGLE_CHECK (NODE), 1)
1560#define OMP_SCOPE_BODY(NODE) TREE_OPERAND (OMP_SCOPE_CHECK (NODE), 0)
1561#define OMP_SCOPE_CLAUSES(NODE) TREE_OPERAND (OMP_SCOPE_CHECK (NODE), 1)
1563#define OMP_MASTER_BODY(NODE) TREE_OPERAND (OMP_MASTER_CHECK (NODE), 0)
1565#define OMP_MASKED_BODY(NODE) TREE_OPERAND (OMP_MASKED_CHECK (NODE), 0)
1566#define OMP_MASKED_CLAUSES(NODE) TREE_OPERAND (OMP_MASKED_CHECK (NODE), 1)
1568#define OMP_TASKGROUP_BODY(NODE) TREE_OPERAND (OMP_TASKGROUP_CHECK (NODE), 0)
1569#define OMP_TASKGROUP_CLAUSES(NODE) \
1570 TREE_OPERAND (OMP_TASKGROUP_CHECK (NODE), 1)
1572#define OMP_ORDERED_BODY(NODE) TREE_OPERAND (OMP_ORDERED_CHECK (NODE), 0)
1573#define OMP_ORDERED_CLAUSES(NODE) TREE_OPERAND (OMP_ORDERED_CHECK (NODE), 1)
1575#define OMP_CRITICAL_BODY(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 0)
1576#define OMP_CRITICAL_CLAUSES(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 1)
1577#define OMP_CRITICAL_NAME(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 2)
1579#define OMP_TEAMS_BODY(NODE) TREE_OPERAND (OMP_TEAMS_CHECK (NODE), 0)
1580#define OMP_TEAMS_CLAUSES(NODE) TREE_OPERAND (OMP_TEAMS_CHECK (NODE), 1)
1582#define OMP_TARGET_DATA_BODY(NODE) \
1583 TREE_OPERAND (OMP_TARGET_DATA_CHECK (NODE), 0)
1584#define OMP_TARGET_DATA_CLAUSES(NODE)\
1585 TREE_OPERAND (OMP_TARGET_DATA_CHECK (NODE), 1)
1587#define OMP_TARGET_BODY(NODE) TREE_OPERAND (OMP_TARGET_CHECK (NODE), 0)
1588#define OMP_TARGET_CLAUSES(NODE) TREE_OPERAND (OMP_TARGET_CHECK (NODE), 1)
1590#define OMP_TARGET_UPDATE_CLAUSES(NODE)\
1591 TREE_OPERAND (OMP_TARGET_UPDATE_CHECK (NODE), 0)
1593#define OMP_TARGET_ENTER_DATA_CLAUSES(NODE)\
1594 TREE_OPERAND (OMP_TARGET_ENTER_DATA_CHECK (NODE), 0)
1596#define OMP_TARGET_EXIT_DATA_CLAUSES(NODE)\
1597 TREE_OPERAND (OMP_TARGET_EXIT_DATA_CHECK (NODE), 0)
1599#define OMP_SCAN_BODY(NODE) TREE_OPERAND (OMP_SCAN_CHECK (NODE), 0)
1600#define OMP_SCAN_CLAUSES(NODE) TREE_OPERAND (OMP_SCAN_CHECK (NODE), 1)
1602#define OMP_CLAUSE_SIZE(NODE) \
1603 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \
1605 OMP_CLAUSE__CACHE_), 1)
1607#define OMP_CLAUSE_CHAIN(NODE) TREE_CHAIN (OMP_CLAUSE_CHECK (NODE))
1608#define OMP_CLAUSE_DECL(NODE) \
1609 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \
1610 OMP_CLAUSE_PRIVATE, \
1611 OMP_CLAUSE__SCANTEMP_), 0)
1612#define OMP_CLAUSE_HAS_LOCATION(NODE) \
1613 (LOCATION_LOCUS ((OMP_CLAUSE_CHECK (NODE))->omp_clause.locus) \
1614 != UNKNOWN_LOCATION)
1615#define OMP_CLAUSE_LOCATION(NODE) (OMP_CLAUSE_CHECK (NODE))->omp_clause.locus
1619#define OMP_FOR_NON_RECTANGULAR(NODE) \
1620 (OMP_LOOPING_CHECK (NODE)->base.private_flag)
1624#define OMP_SECTION_LAST(NODE) \
1625 (OMP_SECTION_CHECK (NODE)->base.private_flag)
1629#define OMP_PARALLEL_COMBINED(NODE) \
1630 (OMP_PARALLEL_CHECK (NODE)->base.private_flag)
1634#define OMP_TEAMS_COMBINED(NODE) \
1635 (OMP_TEAMS_CHECK (NODE)->base.private_flag)
1639#define OMP_TARGET_COMBINED(NODE) \
1640 (OMP_TARGET_CHECK (NODE)->base.private_flag)
1644#define OMP_MASTER_COMBINED(NODE) \
1645 (OMP_MASTER_CHECK (NODE)->base.private_flag)
1649#define OMP_MASKED_COMBINED(NODE) \
1650 (OMP_MASKED_CHECK (NODE)->base.private_flag)
1653#define OMP_ATOMIC_MEMORY_ORDER(NODE) \
1654 (TREE_RANGE_CHECK (NODE, OMP_ATOMIC, \
1655 OMP_ATOMIC_CAPTURE_NEW)->base.u.omp_atomic_memory_order)
1658#define OMP_ATOMIC_WEAK(NODE) \
1659 (TREE_RANGE_CHECK (NODE, OMP_ATOMIC, \
1660 OMP_ATOMIC_CAPTURE_NEW)->base.public_flag)
1665#define OMP_CLAUSE_PRIVATE_DEBUG(NODE) \
1666 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE)->base.public_flag)
1670#define OMP_CLAUSE_PRIVATE_OUTER_REF(NODE) \
1671 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE))
1676#define OMP_CLAUSE_PRIVATE_TASKLOOP_IV(NODE) \
1677 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE))
1680#define OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT(NODE) \
1681 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE)->base.public_flag)
1685#define OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE(NODE) \
1686 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE))
1690#define OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET(NODE) \
1691 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE))
1695#define OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE(NODE) \
1696 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE)->base.public_flag)
1697#define OMP_CLAUSE_LASTPRIVATE_STMT(NODE) \
1698 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
1699 OMP_CLAUSE_LASTPRIVATE),\
1701#define OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ(NODE) \
1702 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
1708#define OMP_CLAUSE_LASTPRIVATE_LOOP_IV(NODE) \
1709 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE))
1712#define OMP_CLAUSE_LASTPRIVATE_CONDITIONAL(NODE) \
1713 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE))
1718#define OMP_CLAUSE_SHARED_FIRSTPRIVATE(NODE) \
1719 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SHARED)->base.public_flag)
1723#define OMP_CLAUSE_SHARED_READONLY(NODE) \
1724 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SHARED))
1726#define OMP_CLAUSE_IF_MODIFIER(NODE) \
1727 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_IF)->omp_clause.subcode.if_modifier)
1729#define OMP_CLAUSE_FINAL_EXPR(NODE) \
1730 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FINAL), 0)
1731#define OMP_CLAUSE_IF_EXPR(NODE) \
1732 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_IF), 0)
1733#define OMP_CLAUSE_SELF_EXPR(NODE) \
1734 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SELF), 0)
1735#define OMP_CLAUSE_NUM_THREADS_EXPR(NODE) \
1736 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_THREADS),0)
1737#define OMP_CLAUSE_SCHEDULE_CHUNK_EXPR(NODE) \
1738 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE), 0)
1739#define OMP_CLAUSE_NUM_TASKS_EXPR(NODE) \
1740 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TASKS), 0)
1741#define OMP_CLAUSE_HINT_EXPR(NODE) \
1742 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_HINT), 0)
1743#define OMP_CLAUSE_FILTER_EXPR(NODE) \
1744 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FILTER), 0)
1746#define OMP_CLAUSE_GRAINSIZE_EXPR(NODE) \
1747 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GRAINSIZE),0)
1749#define OMP_CLAUSE_PRIORITY_EXPR(NODE) \
1750 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIORITY),0)
1752#define OMP_CLAUSE_GRAINSIZE_STRICT(NODE) \
1753 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GRAINSIZE))
1754#define OMP_CLAUSE_NUM_TASKS_STRICT(NODE) \
1755 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TASKS))
1758#define OMP_CLAUSE_EXPR(NODE, CLAUSE) \
1759 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, CLAUSE), 0)
1760#define OMP_CLAUSE_GANG_EXPR(NODE) \
1761 OMP_CLAUSE_OPERAND ( \
1762 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GANG), 0)
1763#define OMP_CLAUSE_GANG_STATIC_EXPR(NODE) \
1764 OMP_CLAUSE_OPERAND ( \
1765 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GANG), 1)
1766#define OMP_CLAUSE_ASYNC_EXPR(NODE) \
1767 OMP_CLAUSE_OPERAND ( \
1768 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ASYNC), 0)
1769#define OMP_CLAUSE_WAIT_EXPR(NODE) \
1770 OMP_CLAUSE_OPERAND ( \
1771 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_WAIT), 0)
1772#define OMP_CLAUSE_VECTOR_EXPR(NODE) \
1773 OMP_CLAUSE_OPERAND ( \
1774 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_VECTOR), 0)
1775#define OMP_CLAUSE_WORKER_EXPR(NODE) \
1776 OMP_CLAUSE_OPERAND ( \
1777 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_WORKER), 0)
1778#define OMP_CLAUSE_NUM_GANGS_EXPR(NODE) \
1779 OMP_CLAUSE_OPERAND ( \
1780 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_GANGS), 0)
1781#define OMP_CLAUSE_NUM_WORKERS_EXPR(NODE) \
1782 OMP_CLAUSE_OPERAND ( \
1783 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_WORKERS), 0)
1784#define OMP_CLAUSE_VECTOR_LENGTH_EXPR(NODE) \
1785 OMP_CLAUSE_OPERAND ( \
1786 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_VECTOR_LENGTH), 0)
1788#define OMP_CLAUSE_DEPEND_KIND(NODE) \
1789 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEPEND)->omp_clause.subcode.depend_kind)
1791#define OMP_CLAUSE_DOACROSS_KIND(NODE) \
1792 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DOACROSS)->omp_clause.subcode.doacross_kind)
1794#define OMP_CLAUSE_DOACROSS_SINK_NEGATIVE(NODE) \
1795 TREE_PUBLIC (TREE_LIST_CHECK (NODE))
1798#define OMP_CLAUSE_DOACROSS_DEPEND(NODE) \
1799 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DOACROSS))
1801#define OMP_CLAUSE_MAP_KIND(NODE) \
1802 ((enum gomp_map_kind) OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->omp_clause.subcode.map_kind)
1803#define OMP_CLAUSE_SET_MAP_KIND(NODE, MAP_KIND) \
1804 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->omp_clause.subcode.map_kind \
1805 = (unsigned int) (MAP_KIND))
1807#define OMP_CLAUSE_MOTION_PRESENT(NODE) \
1808 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_FROM, OMP_CLAUSE_TO)->base.deprecated_flag)
1813#define OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION(NODE) \
1814 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.public_flag)
1817#define OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION(NODE) \
1818 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1822#define OMP_CLAUSE_MAP_IN_REDUCTION(NODE) \
1823 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1827#define OMP_CLAUSE_MAP_IMPLICIT(NODE) \
1828 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.default_def_flag)
1832#define OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P(NODE) \
1833 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.deprecated_flag)
1836#define OMP_CLAUSE_ATTACHMENT_MAPPING_ERASED(NODE) \
1837 TREE_STATIC (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1840#define OMP_CLAUSE_RELEASE_DESCRIPTOR(NODE) \
1841 TREE_NOTHROW (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1845#define OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE(NODE) \
1846 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.addressable_flag)
1849#define OMP_CLAUSE_MAP_READONLY(NODE) \
1850 TREE_READONLY (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1853#define OMP_CLAUSE__CACHE__READONLY(NODE) \
1854 TREE_READONLY (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__CACHE_))
1858#define OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT(NODE) \
1859 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_USE_DEVICE_PTR)->base.public_flag)
1861#define OMP_CLAUSE_PROC_BIND_KIND(NODE) \
1862 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PROC_BIND)->omp_clause.subcode.proc_bind_kind)
1864#define OMP_CLAUSE_DEVICE_TYPE_KIND(NODE) \
1865 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE_TYPE)->omp_clause.subcode.device_type_kind)
1867#define OMP_CLAUSE_INDIRECT_EXPR(NODE) \
1868 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_INDIRECT), 0)
1872#define OMP_CLAUSE_DEVICE_ANCESTOR(NODE) \
1873 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE)->base.public_flag)
1875#define OMP_CLAUSE_COLLAPSE_EXPR(NODE) \
1876 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 0)
1877#define OMP_CLAUSE_COLLAPSE_ITERVAR(NODE) \
1878 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 1)
1879#define OMP_CLAUSE_COLLAPSE_COUNT(NODE) \
1880 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 2)
1882#define OMP_CLAUSE_ORDERED_EXPR(NODE) \
1883 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDERED), 0)
1887#define OMP_CLAUSE_ORDERED_DOACROSS(NODE) \
1888 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDERED)->base.public_flag)
1891#define OMP_CLAUSE_ORDER_UNCONSTRAINED(NODE) \
1892 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDER)->base.public_flag)
1894#define OMP_CLAUSE_ORDER_REPRODUCIBLE(NODE) \
1895 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDER))
1897#define OMP_CLAUSE_REDUCTION_CODE(NODE) \
1898 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1899 OMP_CLAUSE_IN_REDUCTION)->omp_clause.subcode.reduction_code)
1900#define OMP_CLAUSE_REDUCTION_INIT(NODE) \
1901 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1902 OMP_CLAUSE_IN_REDUCTION), 1)
1903#define OMP_CLAUSE_REDUCTION_MERGE(NODE) \
1904 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1905 OMP_CLAUSE_IN_REDUCTION), 2)
1906#define OMP_CLAUSE_REDUCTION_GIMPLE_INIT(NODE) \
1907 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
1908#define OMP_CLAUSE_REDUCTION_GIMPLE_MERGE(NODE) \
1909 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_merge
1910#define OMP_CLAUSE_REDUCTION_PLACEHOLDER(NODE) \
1911 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1912 OMP_CLAUSE_IN_REDUCTION), 3)
1913#define OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER(NODE) \
1914 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1915 OMP_CLAUSE_IN_REDUCTION), 4)
1919#define OMP_CLAUSE_REDUCTION_OMP_ORIG_REF(NODE) \
1920 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
1921 OMP_CLAUSE_IN_REDUCTION)->base.public_flag)
1924#define OMP_CLAUSE_REDUCTION_TASK(NODE) \
1925 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_REDUCTION))
1928#define OMP_CLAUSE_REDUCTION_INSCAN(NODE) \
1929 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_REDUCTION))
1933#define OMP_CLAUSE_LINEAR_NO_COPYIN(NODE) \
1934 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.public_flag)
1938#define OMP_CLAUSE_LINEAR_NO_COPYOUT(NODE) \
1939 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR))
1942#define OMP_CLAUSE_LINEAR_VARIABLE_STRIDE(NODE) \
1943 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR))
1947#define OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER(NODE) \
1948 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.addressable_flag)
1952#define OMP_CLAUSE_LINEAR_ARRAY(NODE) \
1953 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.deprecated_flag)
1955#define OMP_CLAUSE_LINEAR_STEP(NODE) \
1956 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR), 1)
1958#define OMP_CLAUSE_LINEAR_STMT(NODE) \
1959 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR), 2)
1961#define OMP_CLAUSE_LINEAR_GIMPLE_SEQ(NODE) \
1962 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
1964#define OMP_CLAUSE_LINEAR_KIND(NODE) \
1965 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->omp_clause.subcode.linear_kind)
1967#define OMP_CLAUSE_ALIGNED_ALIGNMENT(NODE) \
1968 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALIGNED), 1)
1970#define OMP_CLAUSE_ALLOCATE_ALLOCATOR(NODE) \
1971 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALLOCATE), 1)
1973#define OMP_CLAUSE_ALLOCATE_ALIGN(NODE) \
1974 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALLOCATE), 2)
1980#define OMP_CLAUSE_ALLOCATE_COMBINED(NODE) \
1981 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALLOCATE)->base.public_flag)
1983#define OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR(NODE) \
1984 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TEAMS), 0)
1986#define OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR(NODE) \
1987 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TEAMS), 1)
1989#define OMP_CLAUSE_THREAD_LIMIT_EXPR(NODE) \
1990 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
1991 OMP_CLAUSE_THREAD_LIMIT), 0)
1993#define OMP_CLAUSE_DEVICE_ID(NODE) \
1994 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE), 0)
1996#define OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR(NODE) \
1997 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
1998 OMP_CLAUSE_DIST_SCHEDULE), 0)
2000#define OMP_CLAUSE_SAFELEN_EXPR(NODE) \
2001 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SAFELEN), 0)
2003#define OMP_CLAUSE_SIMDLEN_EXPR(NODE) \
2004 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SIMDLEN), 0)
2006#define OMP_CLAUSE__SIMDUID__DECL(NODE) \
2007 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SIMDUID_), 0)
2009#define OMP_CLAUSE_SCHEDULE_KIND(NODE) \
2010 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE)->omp_clause.subcode.schedule_kind)
2013#define OMP_CLAUSE_SCHEDULE_SIMD(NODE) \
2014 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE)->base.public_flag)
2016#define OMP_CLAUSE_DEFAULT_KIND(NODE) \
2017 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEFAULT)->omp_clause.subcode.default_kind)
2019#define OMP_CLAUSE_DEFAULTMAP_KIND(NODE) \
2020 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEFAULTMAP)->omp_clause.subcode.defaultmap_kind)
2021#define OMP_CLAUSE_DEFAULTMAP_CATEGORY(NODE) \
2022 ((enum omp_clause_defaultmap_kind) \
2023 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) & OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK))
2024#define OMP_CLAUSE_DEFAULTMAP_BEHAVIOR(NODE) \
2025 ((enum omp_clause_defaultmap_kind) \
2026 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) & OMP_CLAUSE_DEFAULTMAP_MASK))
2027#define OMP_CLAUSE_DEFAULTMAP_SET_KIND(NODE, BEHAVIOR, CATEGORY) \
2028 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) \
2029 = (enum omp_clause_defaultmap_kind) (CATEGORY | BEHAVIOR))
2031#define OMP_CLAUSE_BIND_KIND(NODE) \
2032 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_BIND)->omp_clause.subcode.bind_kind)
2035#define OMP_CLAUSE_ENTER_TO(NODE) \
2036 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ENTER)->base.public_flag)
2038#define OMP_CLAUSE_TILE_LIST(NODE) \
2039 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 0)
2040#define OMP_CLAUSE_TILE_ITERVAR(NODE) \
2041 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 1)
2042#define OMP_CLAUSE_TILE_COUNT(NODE) \
2043 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 2)
2046#define OMP_CLAUSE__CONDTEMP__ITER(NODE) \
2047 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__CONDTEMP_)->base.public_flag)
2051#define OMP_CLAUSE__SCANTEMP__ALLOC(NODE) \
2052 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SCANTEMP_)->base.public_flag)
2057#define OMP_CLAUSE__SCANTEMP__CONTROL(NODE) \
2058 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SCANTEMP_))
2064#define SSA_NAME_IS_VIRTUAL_OPERAND(NODE) \
2065 SSA_NAME_CHECK (NODE)->base.public_flag
2069#define SSA_NAME_IDENTIFIER(NODE) \
2070 (SSA_NAME_CHECK (NODE)->ssa_name.var != NULL_TREE \
2071 ? (TREE_CODE ((NODE)->ssa_name.var) == IDENTIFIER_NODE \
2072 ? (NODE)->ssa_name.var \
2073 : DECL_NAME ((NODE)->ssa_name.var)) \
2079#define SSA_NAME_VAR(NODE) \
2080 (SSA_NAME_CHECK (NODE)->ssa_name.var == NULL_TREE \
2081 || TREE_CODE ((NODE)->ssa_name.var) == IDENTIFIER_NODE \
2082 ? NULL_TREE : (NODE)->ssa_name.var)
2084#define SET_SSA_NAME_VAR_OR_IDENTIFIER(NODE,VAR) \
2087 tree var_ = (VAR); \
2088 SSA_NAME_CHECK (NODE)->ssa_name.var = var_; \
2089 SSA_NAME_IS_VIRTUAL_OPERAND (NODE) \
2091 && TREE_CODE (var_) == VAR_DECL \
2092 && VAR_DECL_IS_VIRTUAL_OPERAND (var_)); \
2097#define SSA_NAME_DEF_STMT(NODE) SSA_NAME_CHECK (NODE)->ssa_name.def_stmt
2101#define SSA_NAME_VERSION(NODE) SSA_NAME_CHECK (NODE)->base.u.version
2106#define SSA_NAME_OCCURS_IN_ABNORMAL_PHI(NODE) \
2107 SSA_NAME_CHECK (NODE)->base.asm_written_flag
2112#define SSA_NAME_IN_FREE_LIST(NODE) \
2113 SSA_NAME_CHECK (NODE)->base.nothrow_flag
2120#define SSA_NAME_IS_DEFAULT_DEF(NODE) \
2121 SSA_NAME_CHECK (NODE)->base.default_def_flag
2127#define SSA_NAME_POINTS_TO_READONLY_MEMORY(NODE) \
2128 SSA_NAME_CHECK (NODE)->base.deprecated_flag
2131#define SSA_NAME_PTR_INFO(N) \
2132 SSA_NAME_CHECK (N)->ssa_name.info.ptr_info
2135#define SSA_NAME_RANGE_INFO(N) \
2136 SSA_NAME_CHECK (N)->ssa_name.info.range_info
2139#define SSA_NAME_IMM_USE_NODE(NODE) SSA_NAME_CHECK (NODE)->ssa_name.imm_uses
2141#define OMP_CLAUSE_CODE(NODE) \
2142 (OMP_CLAUSE_CHECK (NODE))->omp_clause.code
2144#define OMP_CLAUSE_SET_CODE(NODE, CODE) \
2145 ((OMP_CLAUSE_CHECK (NODE))->omp_clause.code = (CODE))
2147#define OMP_CLAUSE_OPERAND(NODE, I) \
2148 OMP_CLAUSE_ELT_CHECK (NODE, I)
2152#define BLOCK_VARS(NODE) (BLOCK_CHECK (NODE)->block.vars)
2153#define BLOCK_NONLOCALIZED_VARS(NODE) \
2154 (BLOCK_CHECK (NODE)->block.nonlocalized_vars)
2155#define BLOCK_NUM_NONLOCALIZED_VARS(NODE) \
2156 vec_safe_length (BLOCK_NONLOCALIZED_VARS (NODE))
2157#define BLOCK_NONLOCALIZED_VAR(NODE,N) (*BLOCK_NONLOCALIZED_VARS (NODE))[N]
2159#define BLOCK_SUBBLOCKS(NODE) (BLOCK_CHECK (NODE)->block.subblocks)
2164#define BLOCK_SUPERCONTEXT(NODE) (BLOCK_CHECK (NODE)->block.supercontext)
2166#define BLOCK_CHAIN(NODE) (BLOCK_CHECK (NODE)->block.chain)
2171#define BLOCK_ABSTRACT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.abstract_origin)
2172#define BLOCK_ORIGIN(NODE) \
2173 (BLOCK_ABSTRACT_ORIGIN(NODE) ? BLOCK_ABSTRACT_ORIGIN(NODE) : (NODE))
2174#define BLOCK_DIE(NODE) (BLOCK_CHECK (NODE)->block.die)
2177#define BLOCK_SAME_RANGE(NODE) (BLOCK_CHECK (NODE)->base.u.bits.nameless_flag)
2180#define BLOCK_IN_COLD_SECTION_P(NODE) \
2181 (BLOCK_CHECK (NODE)->base.u.bits.atomic_flag)
2186#define BLOCK_NUMBER(NODE) (BLOCK_CHECK (NODE)->block.block_num)
2210#define BLOCK_FRAGMENT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_origin)
2211#define BLOCK_FRAGMENT_CHAIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_chain)
2217#define BLOCK_SOURCE_LOCATION(NODE) (BLOCK_CHECK (NODE)->block.locus)
2222#define BLOCK_SOURCE_END_LOCATION(NODE) (BLOCK_CHECK (NODE)->block.end_locus)
2235#define TYPE_UID(NODE) (TYPE_CHECK (NODE)->type_common.uid)
2240#define TYPE_SIZE(NODE) (TYPE_CHECK (NODE)->type_common.size)
2242#define TYPE_SIZE_UNIT(NODE) (TYPE_CHECK (NODE)->type_common.size_unit)
2243#define TYPE_POINTER_TO(NODE) (TYPE_CHECK (NODE)->type_common.pointer_to)
2244#define TYPE_REFERENCE_TO(NODE) (TYPE_CHECK (NODE)->type_common.reference_to)
2245#define TYPE_PRECISION(NODE) \
2246 (TREE_NOT_CHECK (TYPE_CHECK (NODE), VECTOR_TYPE)->type_common.precision)
2247#define TYPE_PRECISION_RAW(NODE) (TYPE_CHECK (NODE)->type_common.precision)
2248#define TYPE_NAME(NODE) (TYPE_CHECK (NODE)->type_common.name)
2249#define TYPE_NEXT_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.next_variant)
2250#define TYPE_MAIN_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.main_variant)
2251#define TYPE_CONTEXT(NODE) (TYPE_CHECK (NODE)->type_common.context)
2253#define TYPE_MODE_RAW(NODE) (TYPE_CHECK (NODE)->type_common.mode)
2254#define TYPE_MODE(NODE) \
2255 (VECTOR_TYPE_P (TYPE_CHECK (NODE)) \
2256 ? vector_type_mode (NODE) : (NODE)->type_common.mode)
2257#define SCALAR_TYPE_MODE(NODE) \
2258 (as_a <scalar_mode> (TYPE_CHECK (NODE)->type_common.mode))
2259#define SCALAR_INT_TYPE_MODE(NODE) \
2260 (as_a <scalar_int_mode> (TYPE_CHECK (NODE)->type_common.mode))
2261#define SCALAR_FLOAT_TYPE_MODE(NODE) \
2262 (as_a <scalar_float_mode> (TYPE_CHECK (NODE)->type_common.mode))
2263#define SET_TYPE_MODE(NODE, MODE) \
2264 (TYPE_CHECK (NODE)->type_common.mode = (MODE))
2288#define TYPE_CANONICAL(NODE) (TYPE_CHECK (NODE)->type_common.canonical)
2295#define TYPE_STRUCTURAL_EQUALITY_P(NODE) (TYPE_CANONICAL (NODE) == NULL_TREE)
2298#define SET_TYPE_STRUCTURAL_EQUALITY(NODE) (TYPE_CANONICAL (NODE) = NULL_TREE)
2300#define TYPE_IBIT(NODE) (GET_MODE_IBIT (TYPE_MODE (NODE)))
2301#define TYPE_FBIT(NODE) (GET_MODE_FBIT (TYPE_MODE (NODE)))
2308#define TYPE_ALIAS_SET(NODE) (TYPE_CHECK (NODE)->type_common.alias_set)
2312#define TYPE_ALIAS_SET_KNOWN_P(NODE) \
2313 (TYPE_CHECK (NODE)->type_common.alias_set != -1)
2317#define TYPE_ATTRIBUTES(NODE) (TYPE_CHECK (NODE)->type_common.attributes)
2320#define TYPE_ALIGN_RAW(NODE) \
2321 (TYPE_CHECK (NODE)->type_common.align)
2326#define TYPE_ALIGN(NODE) \
2327 (TYPE_ALIGN_RAW (NODE) \
2328 ? ((unsigned)1) << (TYPE_ALIGN_RAW(NODE) - 1) : 0)
2331#define SET_TYPE_ALIGN(NODE, X) \
2332 (TYPE_CHECK (NODE)->type_common.align = ffs_hwi (X))
2336#define TYPE_USER_ALIGN(NODE) (TYPE_CHECK (NODE)->base.u.bits.user_align)
2339#define TYPE_ALIGN_UNIT(NODE) (TYPE_ALIGN (NODE) / BITS_PER_UNIT)
2343#define TYPE_WARN_IF_NOT_ALIGN(NODE) \
2344 (TYPE_CHECK (NODE)->type_common.warn_if_not_align \
2345 ? ((unsigned)1) << ((NODE)->type_common.warn_if_not_align - 1) : 0)
2348#define SET_TYPE_WARN_IF_NOT_ALIGN(NODE, X) \
2349 (TYPE_CHECK (NODE)->type_common.warn_if_not_align = ffs_hwi (X))
2358#define TYPE_STUB_DECL(NODE) (TREE_CHAIN (TYPE_CHECK (NODE)))
2363#define TYPE_NO_FORCE_BLK(NODE) \
2364 (TYPE_CHECK (NODE)->type_common.no_force_blk_flag)
2367#define TYPE_VOLATILE(NODE) (TYPE_CHECK (NODE)->base.volatile_flag)
2370#define TYPE_ATOMIC(NODE) (TYPE_CHECK (NODE)->base.u.bits.atomic_flag)
2373#define TYPE_READONLY(NODE) (TYPE_CHECK (NODE)->base.readonly_flag)
2377#define TYPE_RESTRICT(NODE) (TYPE_CHECK (NODE)->type_common.restrict_flag)
2380#define TYPE_NAMELESS(NODE) (TYPE_CHECK (NODE)->base.u.bits.nameless_flag)
2383#define TYPE_ADDR_SPACE(NODE) (TYPE_CHECK (NODE)->base.u.bits.address_space)
2387#define ENCODE_QUAL_ADDR_SPACE(NUM) ((NUM & 0xFF) << 8)
2388#define DECODE_QUAL_ADDR_SPACE(X) (((X) >> 8) & 0xFF)
2391#define CLEAR_QUAL_ADDR_SPACE(X) ((X) & ~0xFF00)
2395#define KEEP_QUAL_ADDR_SPACE(X) ((X) & 0xFF00)
2398#define TYPE_QUALS(NODE) \
2399 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2400 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2401 | (TYPE_ATOMIC (NODE) * TYPE_QUAL_ATOMIC) \
2402 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT) \
2403 | (ENCODE_QUAL_ADDR_SPACE (TYPE_ADDR_SPACE (NODE)))))
2406#define TYPE_QUALS_NO_ADDR_SPACE(NODE) \
2407 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2408 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2409 | (TYPE_ATOMIC (NODE) * TYPE_QUAL_ATOMIC) \
2410 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT)))
2414#define TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC(NODE) \
2415 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2416 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2417 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT)))
2420#define TYPE_LANG_FLAG_0(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_0)
2421#define TYPE_LANG_FLAG_1(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_1)
2422#define TYPE_LANG_FLAG_2(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_2)
2423#define TYPE_LANG_FLAG_3(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_3)
2424#define TYPE_LANG_FLAG_4(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_4)
2425#define TYPE_LANG_FLAG_5(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_5)
2426#define TYPE_LANG_FLAG_6(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_6)
2427#define TYPE_LANG_FLAG_7(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_7)
2431#define TREE_VISITED(NODE) ((NODE)->base.visited)
2436#define TYPE_STRING_FLAG(NODE) \
2437 (ARRAY_OR_INTEGER_TYPE_CHECK (NODE)->type_common.string_flag)
2442#define TYPE_CXX_ODR_P(NODE) \
2443 (RECORD_OR_UNION_CHECK (NODE)->type_common.string_flag)
2447#define TYPE_VECTOR_OPAQUE(NODE) \
2448 (VECTOR_TYPE_CHECK (NODE)->base.default_def_flag)
2452#define TYPE_NEEDS_CONSTRUCTING(NODE) \
2453 (TYPE_CHECK (NODE)->type_common.needs_constructing_flag)
2459#define TYPE_TRANSPARENT_AGGR(NODE) \
2460 (RECORD_OR_UNION_CHECK (NODE)->type_common.transparent_aggr_flag)
2465#define TYPE_NONALIASED_COMPONENT(NODE) \
2466 (ARRAY_TYPE_CHECK (NODE)->type_common.transparent_aggr_flag)
2477#define TYPE_TYPELESS_STORAGE(NODE) \
2478 (TREE_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, \
2479 ARRAY_TYPE)->type_common.typeless_storage)
2483#define TYPE_PACKED(NODE) (TYPE_CHECK (NODE)->base.u.bits.packed_flag)
2488#define TYPE_CONTAINS_PLACEHOLDER_INTERNAL(NODE) \
2489 (TYPE_CHECK (NODE)->type_common.contains_placeholder_bits)
2492#define TYPE_FINAL_P(NODE) \
2493 (RECORD_OR_UNION_CHECK (NODE)->base.default_def_flag)
2504#define TYPE_SYMTAB_ADDRESS(NODE) \
2505 (TYPE_CHECK (NODE)->type_common.symtab.address)
2509#define TYPE_SYMTAB_DIE(NODE) \
2510 (TYPE_CHECK (NODE)->type_common.symtab.die)
2516#define TYPE_SYMTAB_IS_ADDRESS (0)
2517#define TYPE_SYMTAB_IS_DIE (1)
2519#define TYPE_LANG_SPECIFIC(NODE) \
2520 (TYPE_CHECK (NODE)->type_with_lang_specific.lang_specific)
2522#define TYPE_VALUES(NODE) (ENUMERAL_TYPE_CHECK (NODE)->type_non_common.values)
2523#define TYPE_DOMAIN(NODE) (ARRAY_TYPE_CHECK (NODE)->type_non_common.values)
2524#define TYPE_FIELDS(NODE) \
2525 (RECORD_OR_UNION_CHECK (NODE)->type_non_common.values)
2526#define TYPE_CACHED_VALUES(NODE) (TYPE_CHECK (NODE)->type_non_common.values)
2527#define TYPE_ARG_TYPES(NODE) \
2528 (FUNC_OR_METHOD_CHECK (NODE)->type_non_common.values)
2529#define TYPE_VALUES_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.values)
2531#define TYPE_MIN_VALUE(NODE) \
2532 (NUMERICAL_TYPE_CHECK (NODE)->type_non_common.minval)
2533#define TYPE_NEXT_PTR_TO(NODE) \
2534 (POINTER_TYPE_CHECK (NODE)->type_non_common.minval)
2535#define TYPE_NEXT_REF_TO(NODE) \
2536 (REFERENCE_TYPE_CHECK (NODE)->type_non_common.minval)
2537#define TYPE_VFIELD(NODE) \
2538 (RECORD_OR_UNION_CHECK (NODE)->type_non_common.minval)
2539#define TYPE_MIN_VALUE_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.minval)
2541#define TYPE_MAX_VALUE(NODE) \
2542 (NUMERICAL_TYPE_CHECK (NODE)->type_non_common.maxval)
2543#define TYPE_METHOD_BASETYPE(NODE) \
2544 (FUNC_OR_METHOD_CHECK (NODE)->type_non_common.maxval)
2545#define TYPE_OFFSET_BASETYPE(NODE) \
2546 (OFFSET_TYPE_CHECK (NODE)->type_non_common.maxval)
2550#define TYPE_ARRAY_MAX_SIZE(ARRAY_TYPE) \
2551 (ARRAY_TYPE_CHECK (ARRAY_TYPE)->type_non_common.maxval)
2552#define TYPE_MAX_VALUE_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.maxval)
2555#define TYPE_BINFO(NODE) (RECORD_OR_UNION_CHECK (NODE)->type_non_common.maxval)
2558#define TYPE_LANG_SLOT_1(NODE) \
2559 (TYPE_CHECK (NODE)->type_non_common.lang_1)
2579#define BINFO_VIRTUAL_P(NODE) (TREE_BINFO_CHECK (NODE)->base.static_flag)
2582#define BINFO_FLAG_0(NODE) TREE_LANG_FLAG_0 (TREE_BINFO_CHECK (NODE))
2583#define BINFO_FLAG_1(NODE) TREE_LANG_FLAG_1 (TREE_BINFO_CHECK (NODE))
2584#define BINFO_FLAG_2(NODE) TREE_LANG_FLAG_2 (TREE_BINFO_CHECK (NODE))
2585#define BINFO_FLAG_3(NODE) TREE_LANG_FLAG_3 (TREE_BINFO_CHECK (NODE))
2586#define BINFO_FLAG_4(NODE) TREE_LANG_FLAG_4 (TREE_BINFO_CHECK (NODE))
2587#define BINFO_FLAG_5(NODE) TREE_LANG_FLAG_5 (TREE_BINFO_CHECK (NODE))
2588#define BINFO_FLAG_6(NODE) TREE_LANG_FLAG_6 (TREE_BINFO_CHECK (NODE))
2591#define BINFO_TYPE(NODE) TREE_TYPE (TREE_BINFO_CHECK (NODE))
2599#define BINFO_OFFSET(NODE) (TREE_BINFO_CHECK (NODE)->binfo.offset)
2600#define BINFO_OFFSET_ZEROP(NODE) (integer_zerop (BINFO_OFFSET (NODE)))
2606#define BINFO_VTABLE(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtable)
2611#define BINFO_VIRTUALS(NODE) (TREE_BINFO_CHECK (NODE)->binfo.virtuals)
2619#define BINFO_BASE_BINFOS(NODE) (&TREE_BINFO_CHECK (NODE)->binfo.base_binfos)
2622#define BINFO_N_BASE_BINFOS(NODE) (BINFO_BASE_BINFOS (NODE)->length ())
2625#define BINFO_BASE_BINFO(NODE,N) \
2626 ((*BINFO_BASE_BINFOS (NODE))[(N)])
2627#define BINFO_BASE_ITERATE(NODE,N,B) \
2628 (BINFO_BASE_BINFOS (NODE)->iterate ((N), &(B)))
2629#define BINFO_BASE_APPEND(NODE,T) \
2630 (BINFO_BASE_BINFOS (NODE)->quick_push ((T)))
2637#define BINFO_VPTR_FIELD(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vptr_field)
2642#define BINFO_BASE_ACCESSES(NODE) \
2643 (TREE_BINFO_CHECK (NODE)->binfo.base_accesses)
2645#define BINFO_BASE_ACCESS(NODE,N) \
2646 (*BINFO_BASE_ACCESSES (NODE))[(N)]
2647#define BINFO_BASE_ACCESS_APPEND(NODE,T) \
2648 BINFO_BASE_ACCESSES (NODE)->quick_push ((T))
2652#define BINFO_SUBVTT_INDEX(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtt_subvtt)
2656#define BINFO_VPTR_INDEX(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtt_vptr)
2662#define BINFO_INHERITANCE_CHAIN(NODE) \
2663 (TREE_BINFO_CHECK (NODE)->binfo.inheritance)
2670#define SSA_VAR_P(DECL) \
2671 (TREE_CODE (DECL) == VAR_DECL \
2672 || TREE_CODE (DECL) == PARM_DECL \
2673 || TREE_CODE (DECL) == RESULT_DECL \
2674 || TREE_CODE (DECL) == SSA_NAME)
2677#define DECL_CHAIN(NODE) (TREE_CHAIN (DECL_MINIMAL_CHECK (NODE)))
2681#define DECL_NAME(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.name)
2684#define TYPE_IDENTIFIER(NODE) \
2685 (TYPE_NAME (NODE) && DECL_P (TYPE_NAME (NODE)) \
2686 ? DECL_NAME (TYPE_NAME (NODE)) : TYPE_NAME (NODE))
2689#define DECL_UID(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.uid)
2693#define DEBUG_TEMP_UID(NODE) (-DECL_UID (TREE_CHECK ((NODE), DEBUG_EXPR_DECL)))
2697#define DECL_PT_UID(NODE) \
2698 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid == -1u \
2699 ? (NODE)->decl_minimal.uid : (NODE)->decl_common.pt_uid)
2701#define SET_DECL_PT_UID(NODE, UID) \
2702 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid = (UID))
2705#define DECL_PT_UID_SET_P(NODE) \
2706 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid != -1u)
2712#define DECL_SOURCE_LOCATION(NODE) \
2713 (DECL_MINIMAL_CHECK (NODE)->decl_minimal.locus)
2714#define DECL_SOURCE_FILE(NODE) LOCATION_FILE (DECL_SOURCE_LOCATION (NODE))
2715#define DECL_SOURCE_LINE(NODE) LOCATION_LINE (DECL_SOURCE_LOCATION (NODE))
2716#define DECL_SOURCE_COLUMN(NODE) LOCATION_COLUMN (DECL_SOURCE_LOCATION (NODE))
2721#define DECL_IS_UNDECLARED_BUILTIN(DECL) \
2722 (DECL_SOURCE_LOCATION (DECL) <= BUILTINS_LOCATION)
2733#define DECL_CONTEXT(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.context)
2734#define DECL_FIELD_CONTEXT(NODE) \
2735 (FIELD_DECL_CHECK (NODE)->decl_minimal.context)
2738#define DECL_NAMELESS(NODE) (DECL_MINIMAL_CHECK (NODE)->base.u.bits.nameless_flag)
2746#define DECL_ABSTRACT_ORIGIN(NODE) \
2747 (DECL_COMMON_CHECK (NODE)->decl_common.abstract_origin)
2751#define DECL_ORIGIN(NODE) \
2752 (DECL_ABSTRACT_ORIGIN (NODE) ? DECL_ABSTRACT_ORIGIN (NODE) : (NODE))
2758#define DECL_FROM_INLINE(NODE) \
2759 (DECL_ABSTRACT_ORIGIN (NODE) != NULL_TREE \
2760 && DECL_ABSTRACT_ORIGIN (NODE) != (NODE))
2763#define DECL_ATTRIBUTES(NODE) \
2764 (DECL_COMMON_CHECK (NODE)->decl_common.attributes)
2776#define DECL_INITIAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.initial)
2782#define DECL_SIZE(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.size)
2784#define DECL_SIZE_UNIT(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.size_unit)
2785#define DECL_ALIGN_RAW(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.align)
2789#define DECL_ALIGN(NODE) \
2790 (DECL_ALIGN_RAW (NODE) \
2791 ? ((unsigned)1) << (DECL_ALIGN_RAW (NODE) - 1) : 0)
2793#define SET_DECL_ALIGN(NODE, X) \
2794 (DECL_ALIGN_RAW (NODE) = ffs_hwi (X))
2798#define DECL_WARN_IF_NOT_ALIGN_RAW(NODE) \
2799 (DECL_COMMON_CHECK (NODE)->decl_common.warn_if_not_align)
2800#define DECL_WARN_IF_NOT_ALIGN(NODE) \
2801 (DECL_WARN_IF_NOT_ALIGN_RAW (NODE) \
2802 ? ((unsigned)1) << (DECL_WARN_IF_NOT_ALIGN_RAW (NODE) - 1) : 0)
2805#define SET_DECL_WARN_IF_NOT_ALIGN(NODE, X) \
2806 (DECL_WARN_IF_NOT_ALIGN_RAW (NODE) = ffs_hwi (X))
2809#define DECL_ALIGN_UNIT(NODE) (DECL_ALIGN (NODE) / BITS_PER_UNIT)
2812#define DECL_USER_ALIGN(NODE) \
2813 (DECL_COMMON_CHECK (NODE)->base.u.bits.user_align)
2817#define DECL_MODE(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.mode)
2818#define SET_DECL_MODE(NODE, MODE) \
2819 (DECL_COMMON_CHECK (NODE)->decl_common.mode = (MODE))
2825#define DECL_UNCHECKED_FUNCTION_CODE(NODE) \
2826 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_code)
2829#define ALLOCA_FUNCTION_CODE_P(FCODE) \
2830 ((FCODE) == BUILT_IN_ALLOCA \
2831 || (FCODE) == BUILT_IN_ALLOCA_WITH_ALIGN \
2832 || (FCODE) == BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX)
2835#define CASE_BUILT_IN_ALLOCA \
2836 case BUILT_IN_ALLOCA: \
2837 case BUILT_IN_ALLOCA_WITH_ALIGN: \
2838 case BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX
2840#define DECL_FUNCTION_PERSONALITY(NODE) \
2841 (FUNCTION_DECL_CHECK (NODE)->function_decl.personality)
2847#define DECL_IGNORED_P(NODE) \
2848 (DECL_COMMON_CHECK (NODE)->decl_common.ignored_flag)
2856#define DECL_ABSTRACT_P(NODE) \
2857 (DECL_COMMON_CHECK (NODE)->decl_common.abstract_flag)
2860#define DECL_LANG_SPECIFIC(NODE) \
2861 (DECL_COMMON_CHECK (NODE)->decl_common.lang_specific)
2870#define DECL_EXTERNAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.decl_flag_1)
2879#define DECL_NONLOCAL(NODE) \
2880 (DECL_COMMON_CHECK (NODE)->decl_common.nonlocal_flag)
2885#define DECL_VIRTUAL_P(NODE) \
2886 (DECL_COMMON_CHECK (NODE)->decl_common.virtual_flag)
2889#define DECL_ARTIFICIAL(NODE) \
2890 (DECL_COMMON_CHECK (NODE)->decl_common.artificial_flag)
2893#define DECL_LANG_FLAG_0(NODE) \
2894 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_0)
2895#define DECL_LANG_FLAG_1(NODE) \
2896 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_1)
2897#define DECL_LANG_FLAG_2(NODE) \
2898 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_2)
2899#define DECL_LANG_FLAG_3(NODE) \
2900 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_3)
2901#define DECL_LANG_FLAG_4(NODE) \
2902 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_4)
2903#define DECL_LANG_FLAG_5(NODE) \
2904 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_5)
2905#define DECL_LANG_FLAG_6(NODE) \
2906 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_6)
2907#define DECL_LANG_FLAG_7(NODE) \
2908 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_7)
2909#define DECL_LANG_FLAG_8(NODE) \
2910 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_8)
2913#define SCOPE_FILE_SCOPE_P(EXP) \
2914 (! (EXP) || TREE_CODE (EXP) == TRANSLATION_UNIT_DECL)
2916#define DECL_FILE_SCOPE_P(EXP) SCOPE_FILE_SCOPE_P (DECL_CONTEXT (EXP))
2918#define TYPE_FILE_SCOPE_P(EXP) SCOPE_FILE_SCOPE_P (TYPE_CONTEXT (EXP))
2922#define DECL_PRESERVE_P(DECL) \
2923 DECL_COMMON_CHECK (DECL)->decl_common.preserve_flag
2928#define DECL_NOINIT_P(DECL) \
2930 && (lookup_attribute ("noinit", DECL_ATTRIBUTES (DECL)) != NULL_TREE))
2935#define DECL_PERSISTENT_P(DECL) \
2937 && (lookup_attribute ("persistent", DECL_ATTRIBUTES (DECL)) != NULL_TREE))
2945#define DECL_NOT_GIMPLE_REG_P(DECL) \
2946 DECL_COMMON_CHECK (DECL)->decl_common.not_gimple_reg_flag
2954#define DECL_HAS_VALUE_EXPR_P(NODE) \
2955 (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, RESULT_DECL) \
2956 ->decl_common.decl_flag_2)
2957#define DECL_VALUE_EXPR(NODE) \
2958 (decl_value_expr_lookup (DECL_WRTL_CHECK (NODE)))
2959#define SET_DECL_VALUE_EXPR(NODE, VAL) \
2960 (decl_value_expr_insert (DECL_WRTL_CHECK (NODE), VAL))
2965#define DECL_RTL(NODE) \
2966 (DECL_WRTL_CHECK (NODE)->decl_with_rtl.rtl \
2967 ? (NODE)->decl_with_rtl.rtl \
2968 : (make_decl_rtl (NODE), (NODE)->decl_with_rtl.rtl))
2971#define SET_DECL_RTL(NODE, RTL) set_decl_rtl (NODE, RTL)
2974#define HAS_RTL_P(NODE) (CODE_CONTAINS_STRUCT (TREE_CODE (NODE), TS_DECL_WRTL))
2977#define DECL_RTL_SET_P(NODE) \
2978 (HAS_RTL_P (NODE) && DECL_WRTL_CHECK (NODE)->decl_with_rtl.rtl != NULL)
2982#define COPY_DECL_RTL(SRC_DECL, DST_DECL) \
2983 (DECL_WRTL_CHECK (DST_DECL)->decl_with_rtl.rtl \
2984 = DECL_WRTL_CHECK (SRC_DECL)->decl_with_rtl.rtl)
2987#define DECL_RTL_IF_SET(NODE) (DECL_RTL_SET_P (NODE) ? DECL_RTL (NODE) : NULL)
2989#if (GCC_VERSION >= 2007)
2990#define DECL_RTL_KNOWN_SET(decl) __extension__ \
2991({ tree const __d = (decl); \
2992 gcc_checking_assert (DECL_RTL_SET_P (__d)); \
2995 &*DECL_RTL_IF_SET (__d); })
2997#define DECL_RTL_KNOWN_SET(decl) (&*DECL_RTL_IF_SET (decl))
3001#define DECL_REGISTER(NODE) (DECL_WRTL_CHECK (NODE)->decl_common.decl_flag_0)
3006#define DECL_FIELD_OFFSET(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.offset)
3012#define DECL_FIELD_BIT_OFFSET(NODE) \
3013 (FIELD_DECL_CHECK (NODE)->field_decl.bit_offset)
3018#define DECL_BIT_FIELD_TYPE(NODE) \
3019 (FIELD_DECL_CHECK (NODE)->field_decl.bit_field_type)
3023#define DECL_BIT_FIELD_REPRESENTATIVE(NODE) \
3024 (FIELD_DECL_CHECK (NODE)->field_decl.qualifier)
3028#define DECL_QUALIFIER(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.qualifier)
3034#define DECL_OFFSET_ALIGN(NODE) \
3035 (HOST_WIDE_INT_1U << FIELD_DECL_CHECK (NODE)->decl_common.off_align)
3038#define SET_DECL_OFFSET_ALIGN(NODE, X) \
3039 (FIELD_DECL_CHECK (NODE)->decl_common.off_align = ffs_hwi (X) - 1)
3044#define DECL_FCONTEXT(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.fcontext)
3047#define DECL_PACKED(NODE) (FIELD_DECL_CHECK (NODE)->base.u.bits.packed_flag)
3051#define DECL_BIT_FIELD(NODE) (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_1)
3057#define DECL_FIELD_ABI_IGNORED(NODE) \
3058 (!DECL_BIT_FIELD (NODE) && (NODE)->decl_common.decl_flag_0)
3059#define SET_DECL_FIELD_ABI_IGNORED(NODE, VAL) \
3061 gcc_checking_assert (!DECL_BIT_FIELD (NODE)); \
3062 FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_0 = (VAL); \
3070#define DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD(NODE) \
3071 (DECL_BIT_FIELD (NODE) && (NODE)->decl_common.decl_flag_0)
3072#define SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD(NODE, VAL) \
3074 gcc_checking_assert (DECL_BIT_FIELD (NODE)); \
3075 FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_0 = (VAL); \
3093#define DECL_NONADDRESSABLE_P(NODE) \
3094 (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_2)
3097#define DECL_PADDING_P(NODE) \
3098 (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_3)
3103#define DECL_NOT_FLEXARRAY(NODE) \
3104 (FIELD_DECL_CHECK (NODE)->decl_common.decl_not_flexarray)
3109#define LABEL_DECL_UID(NODE) \
3110 (LABEL_DECL_CHECK (NODE)->label_decl.label_decl_uid)
3114#define EH_LANDING_PAD_NR(NODE) \
3115 (LABEL_DECL_CHECK (NODE)->label_decl.eh_landing_pad_nr)
3119#define DECL_ARG_TYPE(NODE) (PARM_DECL_CHECK (NODE)->decl_common.initial)
3123#define DECL_INCOMING_RTL(NODE) \
3124 (PARM_DECL_CHECK (NODE)->parm_decl.incoming_rtl)
3128#define DECL_IN_SYSTEM_HEADER(NODE) \
3129 (in_system_header_at (DECL_SOURCE_LOCATION (NODE)))
3133#define DECL_DEFER_OUTPUT(NODE) \
3134 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.defer_output)
3138#define DECL_IN_TEXT_SECTION(NODE) \
3139 (VAR_DECL_CHECK (NODE)->decl_with_vis.in_text_section)
3143#define DECL_IN_CONSTANT_POOL(NODE) \
3144 (VAR_DECL_CHECK (NODE)->decl_with_vis.in_constant_pool)
3149#define DECL_COMMON(NODE) \
3150 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.common_flag)
3154#define DECL_HARD_REGISTER(NODE) \
3155 (VAR_DECL_CHECK (NODE)->decl_with_vis.hard_register)
3158#define DECL_WEAK(NODE) (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.weak_flag)
3161#define DECL_DLLIMPORT_P(NODE) \
3162 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.dllimport_flag)
3173#define DECL_COMDAT(NODE) \
3174 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.comdat_flag)
3176#define DECL_COMDAT_GROUP(NODE) \
3177 decl_comdat_group (NODE)
3181#define DECL_ONE_ONLY(NODE) (DECL_COMDAT_GROUP (NODE) != NULL_TREE \
3182 && (TREE_PUBLIC (NODE) || DECL_EXTERNAL (NODE)))
3191#define DECL_ASSEMBLER_NAME(NODE) decl_assembler_name (NODE)
3194#define DECL_ASSEMBLER_NAME_RAW(NODE) \
3195 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.assembler_name)
3199#define HAS_DECL_ASSEMBLER_NAME_P(NODE) \
3200 (CODE_CONTAINS_STRUCT (TREE_CODE (NODE), TS_DECL_WITH_VIS))
3205#define DECL_ASSEMBLER_NAME_SET_P(NODE) \
3206 (DECL_ASSEMBLER_NAME_RAW (NODE) != NULL_TREE)
3209#define SET_DECL_ASSEMBLER_NAME(NODE, NAME) \
3210 overwrite_decl_assembler_name (NODE, NAME)
3223#define COPY_DECL_ASSEMBLER_NAME(SRC_DECL, DST_DECL) \
3224 SET_DECL_ASSEMBLER_NAME (DST_DECL, DECL_ASSEMBLER_NAME_RAW (SRC_DECL))
3228#define DECL_SECTION_NAME(NODE) decl_section_name (NODE)
3232#define DECL_SEEN_IN_BIND_EXPR_P(NODE) \
3233 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.seen_in_bind_expr)
3236#define DECL_VISIBILITY(NODE) \
3237 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.visibility)
3241#define DECL_VISIBILITY_SPECIFIED(NODE) \
3242 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.visibility_specified)
3246#define DECL_TLS_MODEL(NODE) decl_tls_model (NODE)
3250#define DECL_THREAD_LOCAL_P(NODE) \
3251 ((TREE_STATIC (NODE) || DECL_EXTERNAL (NODE)) && decl_tls_model (NODE) >= TLS_MODEL_REAL)
3256#define DECL_HAS_INIT_PRIORITY_P(NODE) \
3257 (VAR_DECL_CHECK (NODE)->decl_with_vis.init_priority_p)
3263#define DECL_HAS_DEBUG_EXPR_P(NODE) \
3264 (VAR_DECL_CHECK (NODE)->decl_common.debug_expr_is_from)
3265#define DECL_DEBUG_EXPR(NODE) \
3266 (decl_debug_expr_lookup (VAR_DECL_CHECK (NODE)))
3268#define SET_DECL_DEBUG_EXPR(NODE, VAL) \
3269 (decl_debug_expr_insert (VAR_DECL_CHECK (NODE), VAL))
3278#define DECL_INIT_PRIORITY(NODE) \
3279 (decl_init_priority_lookup (NODE))
3281#define SET_DECL_INIT_PRIORITY(NODE, VAL) \
3282 (decl_init_priority_insert (NODE, VAL))
3285#define DECL_FINI_PRIORITY(NODE) \
3286 (decl_fini_priority_lookup (NODE))
3288#define SET_DECL_FINI_PRIORITY(NODE, VAL) \
3289 (decl_fini_priority_insert (NODE, VAL))
3293#define DEFAULT_INIT_PRIORITY 65535
3296#define MAX_INIT_PRIORITY 65535
3300#define MAX_RESERVED_INIT_PRIORITY 100
3303#define VAR_DECL_IS_VIRTUAL_OPERAND(NODE) \
3304 (VAR_DECL_CHECK (NODE)->base.u.bits.saturating_flag)
3307#define DECL_NONLOCAL_FRAME(NODE) \
3308 (VAR_DECL_CHECK (NODE)->base.default_def_flag)
3311#define DECL_NONALIASED(NODE) \
3312 (VAR_DECL_CHECK (NODE)->base.nothrow_flag)
3317#define DECL_MERGEABLE(NODE) \
3318 (VAR_DECL_CHECK (NODE)->decl_common.decl_flag_3)
3322#define DECL_RESULT_FLD(NODE) \
3323 (DECL_NON_COMMON_CHECK (NODE)->decl_non_common.result)
3332#define DECL_VINDEX(NODE) \
3333 (FUNCTION_DECL_CHECK (NODE)->function_decl.vindex)
3336#define DECL_RESULT(NODE) (FUNCTION_DECL_CHECK (NODE)->decl_non_common.result)
3339#define DECL_UNINLINABLE(NODE) \
3340 (FUNCTION_DECL_CHECK (NODE)->function_decl.uninlinable)
3344#define DECL_SAVED_TREE(NODE) \
3345 (FUNCTION_DECL_CHECK (NODE)->function_decl.saved_tree)
3350#define DECL_IS_MALLOC(NODE) \
3351 (FUNCTION_DECL_CHECK (NODE)->function_decl.malloc_flag)
3354#define FUNCTION_DECL_DECL_TYPE(NODE) \
3355 (NODE->function_decl.decl_type)
3375#define DECL_IS_REPLACEABLE_OPERATOR(NODE)\
3376 (FUNCTION_DECL_CHECK (NODE)->function_decl.replaceable_operator)
3381#define DECL_IS_OPERATOR_NEW_P(NODE) \
3382 (FUNCTION_DECL_DECL_TYPE (FUNCTION_DECL_CHECK (NODE)) == OPERATOR_NEW)
3384#define DECL_IS_REPLACEABLE_OPERATOR_NEW_P(NODE) \
3385 (DECL_IS_OPERATOR_NEW_P (NODE) && DECL_IS_REPLACEABLE_OPERATOR (NODE))
3387#define DECL_SET_IS_OPERATOR_NEW(NODE, VAL) \
3388 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), OPERATOR_NEW, VAL)
3392#define DECL_IS_OPERATOR_DELETE_P(NODE) \
3393 (FUNCTION_DECL_DECL_TYPE (FUNCTION_DECL_CHECK (NODE)) == OPERATOR_DELETE)
3395#define DECL_SET_IS_OPERATOR_DELETE(NODE, VAL) \
3396 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), OPERATOR_DELETE, VAL)
3400#define DECL_IS_RETURNS_TWICE(NODE) \
3401 (FUNCTION_DECL_CHECK (NODE)->function_decl.returns_twice_flag)
3408#define DECL_PURE_P(NODE) (FUNCTION_DECL_CHECK (NODE)->function_decl.pure_flag)
3416#define DECL_LOOPING_CONST_OR_PURE_P(NODE) \
3417 (FUNCTION_DECL_CHECK (NODE)->function_decl.looping_const_or_pure_flag)
3422#define DECL_IS_NOVOPS(NODE) \
3423 (FUNCTION_DECL_CHECK (NODE)->function_decl.novops_flag)
3427#define DECL_STATIC_CONSTRUCTOR(NODE) \
3428 (FUNCTION_DECL_CHECK (NODE)->function_decl.static_ctor_flag)
3430#define DECL_STATIC_DESTRUCTOR(NODE) \
3431(FUNCTION_DECL_CHECK (NODE)->function_decl.static_dtor_flag)
3435#define DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT(NODE) \
3436 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_instrument_function_entry_exit)
3440#define DECL_NO_LIMIT_STACK(NODE) \
3441 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_limit_stack)
3444#define DECL_STATIC_CHAIN(NODE) \
3445 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.regdecl_flag)
3450#define DECL_POSSIBLY_INLINED(DECL) \
3451 FUNCTION_DECL_CHECK (DECL)->function_decl.possibly_inlined
3456#define DECL_DECLARED_INLINE_P(NODE) \
3457 (FUNCTION_DECL_CHECK (NODE)->function_decl.declared_inline_flag)
3461#define DECL_NO_INLINE_WARNING_P(NODE) \
3462 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_inline_warning_flag)
3465#define BUILTIN_TM_LOAD_STORE_P(FN) \
3466 ((FN) >= BUILT_IN_TM_STORE_1 && (FN) <= BUILT_IN_TM_LOAD_RFW_LDOUBLE)
3469#define BUILTIN_TM_LOAD_P(FN) \
3470 ((FN) >= BUILT_IN_TM_LOAD_1 && (FN) <= BUILT_IN_TM_LOAD_RFW_LDOUBLE)
3473#define BUILTIN_TM_STORE_P(FN) \
3474 ((FN) >= BUILT_IN_TM_STORE_1 && (FN) <= BUILT_IN_TM_STORE_WAW_LDOUBLE)
3476#define CASE_BUILT_IN_TM_LOAD(FN) \
3477 case BUILT_IN_TM_LOAD_##FN: \
3478 case BUILT_IN_TM_LOAD_RAR_##FN: \
3479 case BUILT_IN_TM_LOAD_RAW_##FN: \
3480 case BUILT_IN_TM_LOAD_RFW_##FN
3482#define CASE_BUILT_IN_TM_STORE(FN) \
3483 case BUILT_IN_TM_STORE_##FN: \
3484 case BUILT_IN_TM_STORE_WAR_##FN: \
3485 case BUILT_IN_TM_STORE_WAW_##FN
3491#define DECL_DISREGARD_INLINE_LIMITS(NODE) \
3492 (FUNCTION_DECL_CHECK (NODE)->function_decl.disregard_inline_limits)
3498#define DECL_HAS_DEBUG_ARGS_P(NODE) \
3499 (FUNCTION_DECL_CHECK (NODE)->function_decl.has_debug_args_flag)
3503#define DECL_STRUCT_FUNCTION(NODE) \
3504 (FUNCTION_DECL_CHECK (NODE)->function_decl.f)
3507#define DECL_BUILT_IN_CLASS(NODE) \
3508 ((built_in_class) FUNCTION_DECL_CHECK (NODE)->function_decl.built_in_class)
3511#define DECL_ARGUMENTS(NODE) \
3512 (FUNCTION_DECL_CHECK (NODE)->function_decl.arguments)
3516#define DECL_FUNCTION_SPECIFIC_TARGET(NODE) \
3517 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_specific_target)
3521#define DECL_FUNCTION_SPECIFIC_OPTIMIZATION(NODE) \
3522 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_specific_optimization)
3527#define DECL_FUNCTION_VERSIONED(NODE)\
3528 (FUNCTION_DECL_CHECK (NODE)->function_decl.versioned_function)
3534#define DECL_CXX_CONSTRUCTOR_P(NODE)\
3535 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.cxx_constructor)
3539#define DECL_CXX_DESTRUCTOR_P(NODE)\
3540 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.cxx_destructor)
3543#define DECL_LAMBDA_FUNCTION_P(NODE) \
3544 (FUNCTION_DECL_DECL_TYPE (FUNCTION_DECL_CHECK (NODE)) == LAMBDA_FUNCTION)
3546#define DECL_SET_LAMBDA_FUNCTION(NODE, VAL) \
3547 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), LAMBDA_FUNCTION, VAL)
3551#define DECL_FINAL_P(NODE)\
3552 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.final)
3555#define TRANSLATION_UNIT_LANGUAGE(NODE) \
3556 (TRANSLATION_UNIT_DECL_CHECK (NODE)->translation_unit_decl.language)
3561#define DECL_ORIGINAL_TYPE(NODE) \
3562 (TYPE_DECL_CHECK (NODE)->decl_non_common.result)
3567#define TYPE_DECL_SUPPRESS_DEBUG(NODE) \
3568 (TYPE_DECL_CHECK (NODE)->decl_common.decl_flag_1)
3572#define IMPORTED_DECL_ASSOCIATED_DECL(NODE) \
3573(DECL_INITIAL (IMPORTED_DECL_CHECK (NODE)))
3577#define NAMELIST_DECL_ASSOCIATED_DECL(NODE) \
3578 (DECL_INITIAL (NODE))
3586#define STATEMENT_LIST_HEAD(NODE) \
3587 (STATEMENT_LIST_CHECK (NODE)->stmt_list.head)
3588#define STATEMENT_LIST_TAIL(NODE) \
3589 (STATEMENT_LIST_CHECK (NODE)->stmt_list.tail)
3591#define TREE_OPTIMIZATION(NODE) \
3592 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.opts)
3594#define TREE_OPTIMIZATION_OPTABS(NODE) \
3595 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.optabs)
3597#define TREE_OPTIMIZATION_BASE_OPTABS(NODE) \
3598 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.base_optabs)
3605#define TREE_TARGET_OPTION(NODE) \
3606 (TARGET_OPTION_NODE_CHECK (NODE)->target_option.opts)
3608#define TREE_TARGET_GLOBALS(NODE) \
3609 (TARGET_OPTION_NODE_CHECK (NODE)->target_option.globals)
3618#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007)
3744 tree_check_failed (
__t,
__f,
__l,
__g,
__c1,
__c2,
__c3,
__c4,
__c5,
__c6,
3767 const char *
__f,
int __l,
const char *
__g)
3776 const char *
__f,
int __l,
const char *
__g)
3786 const char *
__f,
int __l,
const char *
__g)
3795 const char *
__f,
int __l,
const char *
__g)
3808 const char *
__f,
int __l,
const char *
__g)
3812 if ((
int)
__t->omp_clause.code < (
int)
__code1
3813 || (
int)
__t->omp_clause.code > (
int)
__code2)
3841 const char *
__f,
int __l,
const char *
__g)
3853 const char *
__f,
int __l,
const char *
__g)
3865# if GCC_VERSION >= 4006
3866#pragma GCC diagnostic push
3867#pragma GCC diagnostic ignored "-Wstrict-overflow"
3872 const char *
__f,
int __l,
const char *
__g)
3881# if GCC_VERSION >= 4006
3882#pragma GCC diagnostic pop
3887 const char *
__f,
int __l,
const char *
__g)
3893 return &
__t->omp_clause.ops[
__i];
4032 tree_check_failed (
__t,
__f,
__l,
__g,
__c1,
__c2,
__c3,
__c4,
__c5,
__c6,
4055 const char *
__f,
int __l,
const char *
__g)
4064 const char *
__f,
int __l,
const char *
__g)
4074 const char *
__f,
int __l,
const char *
__g)
4083 const char *
__f,
int __l,
const char *
__g)
4096 const char *
__f,
int __l,
const char *
__g)
4100 if ((
int)
__t->omp_clause.code < (
int)
__code1
4101 || (
int)
__t->omp_clause.code > (
int)
__code2)
4123# if GCC_VERSION >= 4006
4124#pragma GCC diagnostic push
4125#pragma GCC diagnostic ignored "-Wstrict-overflow"
4130 const char *
__f,
int __l,
const char *
__g)
4140# if GCC_VERSION >= 4006
4141#pragma GCC diagnostic pop
4146 const char *
__f,
int __l,
const char *
__g)
4179#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007)
4184 const char *
__f,
int __l,
const char *
__g)
4194 const char *
__f,
int __l,
const char *
__g)
4200 return &
__t->exp.operands[
__i];
4205 const char *
__f,
int __l,
const char *
__g)
4215 const char *
__f,
int __l,
const char *
__g)
4253 if (precision & 0x100)
4291 = index + (
coeff1 != 0 ? 0x100 : 0);
4333 return fndecl.function_code;
4344 return fndecl.function_code;
4354 fndecl.built_in_class =
fclass;
4355 fndecl.function_code = fcode;
4374#define EXPR_LOCATION_WRAPPER_P(NODE) \
4375 (TREE_CHECK2(NODE, NON_LVALUE_EXPR, VIEW_CONVERT_EXPR)->base.public_flag)
4409#define error_mark_node global_trees[TI_ERROR_MARK]
4411#define intQI_type_node global_trees[TI_INTQI_TYPE]
4412#define intHI_type_node global_trees[TI_INTHI_TYPE]
4413#define intSI_type_node global_trees[TI_INTSI_TYPE]
4414#define intDI_type_node global_trees[TI_INTDI_TYPE]
4415#define intTI_type_node global_trees[TI_INTTI_TYPE]
4417#define unsigned_intQI_type_node global_trees[TI_UINTQI_TYPE]
4418#define unsigned_intHI_type_node global_trees[TI_UINTHI_TYPE]
4419#define unsigned_intSI_type_node global_trees[TI_UINTSI_TYPE]
4420#define unsigned_intDI_type_node global_trees[TI_UINTDI_TYPE]
4421#define unsigned_intTI_type_node global_trees[TI_UINTTI_TYPE]
4423#define atomicQI_type_node global_trees[TI_ATOMICQI_TYPE]
4424#define atomicHI_type_node global_trees[TI_ATOMICHI_TYPE]
4425#define atomicSI_type_node global_trees[TI_ATOMICSI_TYPE]
4426#define atomicDI_type_node global_trees[TI_ATOMICDI_TYPE]
4427#define atomicTI_type_node global_trees[TI_ATOMICTI_TYPE]
4429#define uint16_type_node global_trees[TI_UINT16_TYPE]
4430#define uint32_type_node global_trees[TI_UINT32_TYPE]
4431#define uint64_type_node global_trees[TI_UINT64_TYPE]
4432#define uint128_type_node global_trees[TI_UINT128_TYPE]
4434#define void_node global_trees[TI_VOID]
4436#define integer_zero_node global_trees[TI_INTEGER_ZERO]
4437#define integer_one_node global_trees[TI_INTEGER_ONE]
4438#define integer_three_node global_trees[TI_INTEGER_THREE]
4439#define integer_minus_one_node global_trees[TI_INTEGER_MINUS_ONE]
4440#define size_zero_node global_trees[TI_SIZE_ZERO]
4441#define size_one_node global_trees[TI_SIZE_ONE]
4442#define bitsize_zero_node global_trees[TI_BITSIZE_ZERO]
4443#define bitsize_one_node global_trees[TI_BITSIZE_ONE]
4444#define bitsize_unit_node global_trees[TI_BITSIZE_UNIT]
4447#define access_public_node global_trees[TI_PUBLIC]
4448#define access_protected_node global_trees[TI_PROTECTED]
4449#define access_private_node global_trees[TI_PRIVATE]
4451#define null_pointer_node global_trees[TI_NULL_POINTER]
4453#define float_type_node global_trees[TI_FLOAT_TYPE]
4454#define double_type_node global_trees[TI_DOUBLE_TYPE]
4455#define long_double_type_node global_trees[TI_LONG_DOUBLE_TYPE]
4456#define bfloat16_type_node global_trees[TI_BFLOAT16_TYPE]
4459#define FLOATN_TYPE_NODE(IDX) global_trees[TI_FLOATN_TYPE_FIRST + (IDX)]
4460#define FLOATN_NX_TYPE_NODE(IDX) global_trees[TI_FLOATN_NX_TYPE_FIRST + (IDX)]
4461#define FLOATNX_TYPE_NODE(IDX) global_trees[TI_FLOATNX_TYPE_FIRST + (IDX)]
4466#define float16_type_node global_trees[TI_FLOAT16_TYPE]
4467#define float32_type_node global_trees[TI_FLOAT32_TYPE]
4468#define float64_type_node global_trees[TI_FLOAT64_TYPE]
4469#define float128_type_node global_trees[TI_FLOAT128_TYPE]
4470#define float32x_type_node global_trees[TI_FLOAT32X_TYPE]
4471#define float64x_type_node global_trees[TI_FLOAT64X_TYPE]
4472#define float128x_type_node global_trees[TI_FLOAT128X_TYPE]
4476#define float128t_type_node global_trees[TI_FLOAT128T_TYPE]
4478#define float_ptr_type_node global_trees[TI_FLOAT_PTR_TYPE]
4479#define double_ptr_type_node global_trees[TI_DOUBLE_PTR_TYPE]
4480#define long_double_ptr_type_node global_trees[TI_LONG_DOUBLE_PTR_TYPE]
4481#define integer_ptr_type_node global_trees[TI_INTEGER_PTR_TYPE]
4483#define complex_integer_type_node global_trees[TI_COMPLEX_INTEGER_TYPE]
4484#define complex_float_type_node global_trees[TI_COMPLEX_FLOAT_TYPE]
4485#define complex_double_type_node global_trees[TI_COMPLEX_DOUBLE_TYPE]
4486#define complex_long_double_type_node global_trees[TI_COMPLEX_LONG_DOUBLE_TYPE]
4488#define COMPLEX_FLOATN_NX_TYPE_NODE(IDX) global_trees[TI_COMPLEX_FLOATN_NX_TYPE_FIRST + (IDX)]
4490#define void_type_node global_trees[TI_VOID_TYPE]
4492#define ptr_type_node global_trees[TI_PTR_TYPE]
4494#define const_ptr_type_node global_trees[TI_CONST_PTR_TYPE]
4496#define size_type_node global_trees[TI_SIZE_TYPE]
4497#define pid_type_node global_trees[TI_PID_TYPE]
4498#define ptrdiff_type_node global_trees[TI_PTRDIFF_TYPE]
4499#define va_list_type_node global_trees[TI_VA_LIST_TYPE]
4500#define va_list_gpr_counter_field global_trees[TI_VA_LIST_GPR_COUNTER_FIELD]
4501#define va_list_fpr_counter_field global_trees[TI_VA_LIST_FPR_COUNTER_FIELD]
4503#define fileptr_type_node global_trees[TI_FILEPTR_TYPE]
4505#define const_tm_ptr_type_node global_trees[TI_CONST_TM_PTR_TYPE]
4507#define fenv_t_ptr_type_node global_trees[TI_FENV_T_PTR_TYPE]
4508#define const_fenv_t_ptr_type_node global_trees[TI_CONST_FENV_T_PTR_TYPE]
4510#define fexcept_t_ptr_type_node global_trees[TI_FEXCEPT_T_PTR_TYPE]
4511#define const_fexcept_t_ptr_type_node global_trees[TI_CONST_FEXCEPT_T_PTR_TYPE]
4512#define pointer_sized_int_node global_trees[TI_POINTER_SIZED_TYPE]
4514#define boolean_type_node global_trees[TI_BOOLEAN_TYPE]
4515#define boolean_false_node global_trees[TI_BOOLEAN_FALSE]
4516#define boolean_true_node global_trees[TI_BOOLEAN_TRUE]
4519#define dfloat32_type_node global_trees[TI_DFLOAT32_TYPE]
4520#define dfloat64_type_node global_trees[TI_DFLOAT64_TYPE]
4521#define dfloat128_type_node global_trees[TI_DFLOAT128_TYPE]
4524#define sat_short_fract_type_node global_trees[TI_SAT_SFRACT_TYPE]
4525#define sat_fract_type_node global_trees[TI_SAT_FRACT_TYPE]
4526#define sat_long_fract_type_node global_trees[TI_SAT_LFRACT_TYPE]
4527#define sat_long_long_fract_type_node global_trees[TI_SAT_LLFRACT_TYPE]
4528#define sat_unsigned_short_fract_type_node \
4529 global_trees[TI_SAT_USFRACT_TYPE]
4530#define sat_unsigned_fract_type_node global_trees[TI_SAT_UFRACT_TYPE]
4531#define sat_unsigned_long_fract_type_node \
4532 global_trees[TI_SAT_ULFRACT_TYPE]
4533#define sat_unsigned_long_long_fract_type_node \
4534 global_trees[TI_SAT_ULLFRACT_TYPE]
4535#define short_fract_type_node global_trees[TI_SFRACT_TYPE]
4536#define fract_type_node global_trees[TI_FRACT_TYPE]
4537#define long_fract_type_node global_trees[TI_LFRACT_TYPE]
4538#define long_long_fract_type_node global_trees[TI_LLFRACT_TYPE]
4539#define unsigned_short_fract_type_node global_trees[TI_USFRACT_TYPE]
4540#define unsigned_fract_type_node global_trees[TI_UFRACT_TYPE]
4541#define unsigned_long_fract_type_node global_trees[TI_ULFRACT_TYPE]
4542#define unsigned_long_long_fract_type_node \
4543 global_trees[TI_ULLFRACT_TYPE]
4544#define sat_short_accum_type_node global_trees[TI_SAT_SACCUM_TYPE]
4545#define sat_accum_type_node global_trees[TI_SAT_ACCUM_TYPE]
4546#define sat_long_accum_type_node global_trees[TI_SAT_LACCUM_TYPE]
4547#define sat_long_long_accum_type_node global_trees[TI_SAT_LLACCUM_TYPE]
4548#define sat_unsigned_short_accum_type_node \
4549 global_trees[TI_SAT_USACCUM_TYPE]
4550#define sat_unsigned_accum_type_node global_trees[TI_SAT_UACCUM_TYPE]
4551#define sat_unsigned_long_accum_type_node \
4552 global_trees[TI_SAT_ULACCUM_TYPE]
4553#define sat_unsigned_long_long_accum_type_node \
4554 global_trees[TI_SAT_ULLACCUM_TYPE]
4555#define short_accum_type_node global_trees[TI_SACCUM_TYPE]
4556#define accum_type_node global_trees[TI_ACCUM_TYPE]
4557#define long_accum_type_node global_trees[TI_LACCUM_TYPE]
4558#define long_long_accum_type_node global_trees[TI_LLACCUM_TYPE]
4559#define unsigned_short_accum_type_node global_trees[TI_USACCUM_TYPE]
4560#define unsigned_accum_type_node global_trees[TI_UACCUM_TYPE]
4561#define unsigned_long_accum_type_node global_trees[TI_ULACCUM_TYPE]
4562#define unsigned_long_long_accum_type_node \
4563 global_trees[TI_ULLACCUM_TYPE]
4564#define qq_type_node global_trees[TI_QQ_TYPE]
4565#define hq_type_node global_trees[TI_HQ_TYPE]
4566#define sq_type_node global_trees[TI_SQ_TYPE]
4567#define dq_type_node global_trees[TI_DQ_TYPE]
4568#define tq_type_node global_trees[TI_TQ_TYPE]
4569#define uqq_type_node global_trees[TI_UQQ_TYPE]
4570#define uhq_type_node global_trees[TI_UHQ_TYPE]
4571#define usq_type_node global_trees[TI_USQ_TYPE]
4572#define udq_type_node global_trees[TI_UDQ_TYPE]
4573#define utq_type_node global_trees[TI_UTQ_TYPE]
4574#define sat_qq_type_node global_trees[TI_SAT_QQ_TYPE]
4575#define sat_hq_type_node global_trees[TI_SAT_HQ_TYPE]
4576#define sat_sq_type_node global_trees[TI_SAT_SQ_TYPE]
4577#define sat_dq_type_node global_trees[TI_SAT_DQ_TYPE]
4578#define sat_tq_type_node global_trees[TI_SAT_TQ_TYPE]
4579#define sat_uqq_type_node global_trees[TI_SAT_UQQ_TYPE]
4580#define sat_uhq_type_node global_trees[TI_SAT_UHQ_TYPE]
4581#define sat_usq_type_node global_trees[TI_SAT_USQ_TYPE]
4582#define sat_udq_type_node global_trees[TI_SAT_UDQ_TYPE]
4583#define sat_utq_type_node global_trees[TI_SAT_UTQ_TYPE]
4584#define ha_type_node global_trees[TI_HA_TYPE]
4585#define sa_type_node global_trees[TI_SA_TYPE]
4586#define da_type_node global_trees[TI_DA_TYPE]
4587#define ta_type_node global_trees[TI_TA_TYPE]
4588#define uha_type_node global_trees[TI_UHA_TYPE]
4589#define usa_type_node global_trees[TI_USA_TYPE]
4590#define uda_type_node global_trees[TI_UDA_TYPE]
4591#define uta_type_node global_trees[TI_UTA_TYPE]
4592#define sat_ha_type_node global_trees[TI_SAT_HA_TYPE]
4593#define sat_sa_type_node global_trees[TI_SAT_SA_TYPE]
4594#define sat_da_type_node global_trees[TI_SAT_DA_TYPE]
4595#define sat_ta_type_node global_trees[TI_SAT_TA_TYPE]
4596#define sat_uha_type_node global_trees[TI_SAT_UHA_TYPE]
4597#define sat_usa_type_node global_trees[TI_SAT_USA_TYPE]
4598#define sat_uda_type_node global_trees[TI_SAT_UDA_TYPE]
4599#define sat_uta_type_node global_trees[TI_SAT_UTA_TYPE]
4606#define void_list_node global_trees[TI_VOID_LIST_NODE]
4608#define main_identifier_node global_trees[TI_MAIN_IDENTIFIER]
4609#define MAIN_NAME_P(NODE) \
4610 (IDENTIFIER_NODE_CHECK (NODE) == main_identifier_node)
4614#define optimization_default_node global_trees[TI_OPTIMIZATION_DEFAULT]
4615#define optimization_current_node global_trees[TI_OPTIMIZATION_CURRENT]
4618#define target_option_default_node global_trees[TI_TARGET_OPTION_DEFAULT]
4619#define target_option_current_node global_trees[TI_TARGET_OPTION_CURRENT]
4623#define current_target_pragma global_trees[TI_CURRENT_TARGET_PRAGMA]
4624#define current_optimize_pragma global_trees[TI_CURRENT_OPTIMIZE_PRAGMA]
4627#define chrec_not_analyzed_yet NULL_TREE
4628#define chrec_dont_know global_trees[TI_CHREC_DONT_KNOW]
4629#define chrec_known global_trees[TI_CHREC_KNOWN]
4631#define char_type_node integer_types[itk_char]
4632#define signed_char_type_node integer_types[itk_signed_char]
4633#define unsigned_char_type_node integer_types[itk_unsigned_char]
4634#define short_integer_type_node integer_types[itk_short]
4635#define short_unsigned_type_node integer_types[itk_unsigned_short]
4636#define integer_type_node integer_types[itk_int]
4637#define unsigned_type_node integer_types[itk_unsigned_int]
4638#define long_integer_type_node integer_types[itk_long]
4639#define long_unsigned_type_node integer_types[itk_unsigned_long]
4640#define long_long_integer_type_node integer_types[itk_long_long]
4641#define long_long_unsigned_type_node integer_types[itk_unsigned_long_long]
4855#define build_call_array(T1,T2,N,T3)\
4856 build_call_array_loc (UNKNOWN_LOCATION, T1, T2, N, T3)
4907#define build_function_type_vec(RET, V) \
4908 build_function_type_array (RET, vec_safe_length (V), vec_safe_address (V))
4909#define build_varargs_function_type_vec(RET, V) \
4910 build_varargs_function_type_array (RET, vec_safe_length (V), \
4911 vec_safe_address (V))
4940#if !defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 4003)
4954#if NUM_POLY_INT_COEFFS == 1
5068#define build_type_variant(TYPE, CONST_P, VOLATILE_P) \
5069 build_qualified_type ((TYPE), \
5070 ((CONST_P) ? TYPE_QUAL_CONST : 0) \
5071 | ((VOLATILE_P) ? TYPE_QUAL_VOLATILE : 0))
5102#define sizetype sizetype_tab[(int) stk_sizetype]
5103#define bitsizetype sizetype_tab[(int) stk_bitsizetype]
5104#define ssizetype sizetype_tab[(int) stk_ssizetype]
5105#define sbitsizetype sizetype_tab[(int) stk_sbitsizetype]
5106#define size_int(L) size_int_kind (L, stk_sizetype)
5107#define ssize_int(L) size_int_kind (L, stk_ssizetype)
5108#define bitsize_int(L) size_int_kind (L, stk_bitsizetype)
5109#define sbitsize_int(L) size_int_kind (L, stk_sbitsizetype)
5113#if BITS_PER_UNIT == 8
5114#define LOG2_BITS_PER_UNIT 3
5115#elif BITS_PER_UNIT == 16
5116#define LOG2_BITS_PER_UNIT 4
5118#error Unknown BITS_PER_UNIT
5270#define CONTAINS_PLACEHOLDER_P(EXP) \
5271 ((EXP) != 0 && ! TREE_CONSTANT (EXP) && contains_placeholder_p (EXP))
5291#define FIND_PLACEHOLDER_IN_EXPR(EXP, V) \
5293 if((EXP) && !TREE_CONSTANT (EXP)) \
5294 find_placeholder_in_expr (EXP, V); \
5309#define SUBSTITUTE_IN_EXPR(EXP, F, R) \
5310 ((EXP) == 0 || TREE_CONSTANT (EXP) ? (EXP) : substitute_in_expr (EXP, F, R))
5320#define SUBSTITUTE_PLACEHOLDER_IN_EXPR(EXP, OBJ) \
5321 ((EXP) == 0 || TREE_CONSTANT (EXP) ? (EXP) \
5322 : substitute_placeholder_in_expr (EXP, OBJ))
5493#define FOREACH_FUNCTION_ARGS_PTR(FNTYPE, PTR, ITER) \
5494 for (function_args_iter_init (&(ITER), (FNTYPE)); \
5495 (PTR = function_args_iter_cond_ptr (&(ITER))) != NULL; \
5496 function_args_iter_next (&(ITER)))
5501#define FOREACH_FUNCTION_ARGS(FNTYPE, TREE, ITER) \
5502 for (function_args_iter_init (&(ITER), (FNTYPE)); \
5503 (TREE = function_args_iter_cond (&(ITER))) != NULL_TREE; \
5504 function_args_iter_next (&(ITER)))
5576 const void *
const * x = (
const void *
const *)
a;
5577 const void *
const *
y = (
const void *
const *)
b;
5584 const void *
const * x = (
const void *
const *)
a;
5652#ifndef GENERATOR_FILE
5718#define walk_tree(a,b,c,d) \
5719 walk_tree_1 (a, b, c, d, NULL)
5720#define walk_tree_without_duplicates(a,b,c) \
5721 walk_tree_without_duplicates_1 (a, b, c, NULL)
5838#define tree_map_eq tree_map_base_eq
5840#define tree_map_marked_p tree_map_base_marked_p
5842#define tree_decl_map_eq tree_map_base_eq
5844#define tree_decl_map_marked_p tree_map_base_marked_p
5862#define tree_int_map_eq tree_map_base_eq
5863#define tree_int_map_hash tree_map_base_hash
5864#define tree_int_map_marked_p tree_map_base_marked_p
5866#define tree_vec_map_eq tree_map_base_eq
5867#define tree_vec_map_hash tree_decl_map_hash
5868#define tree_vec_map_marked_p tree_map_base_marked_p
5877 return a->base.from ==
b->base.from;
5987 if (iter->i >= iter->n)
5998 if (iter->i >= iter->n)
6028 return (iter->i < iter->n);
6033#define FOR_EACH_CALL_EXPR_ARG(arg, iter, call) \
6034 for ((arg) = first_call_expr_arg ((call), &(iter)); (arg); \
6035 (arg) = next_call_expr_arg (&(iter)))
6037#define FOR_EACH_CONST_CALL_EXPR_ARG(arg, iter, call) \
6038 for ((arg) = first_const_call_expr_arg ((call), &(iter)); (arg); \
6039 (arg) = next_const_call_expr_arg (&(iter)))
6049#define BUILTIN_VALID_P(FNCODE) \
6050 (IN_RANGE ((int)FNCODE, ((int)BUILT_IN_NONE) + 1, ((int) END_BUILTINS) - 1))
6056#define BUILTIN_ASM_NAME_PTR(BUILTIN) \
6057 (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (builtin_decl_explicit (BUILTIN))))
6235#define opt_for_fn(fndecl, opt) (opts_for_fn (fndecl)->x_##opt)
6257 unsigned int get_len ()
const;
6265 static const bool host_dependent_precision =
false;
6266 static const bool is_sign_extended =
false;
6267 static const bool needs_write_val_arg =
false;
6282 unsigned int get_len ()
const;
6287 struct int_traits <extended_tree <
N> >
6291 static const bool host_dependent_precision =
false;
6292 static const bool is_sign_extended =
true;
6293 static const bool needs_write_val_arg =
false;
6328 static extended
zero (
const extended &);
6335 static extended
zero (
const extended &);
6342 static unextended
zero (
const unextended &);
6577wi::ints_for <generic_wide_int <wi::extended_tree <N> >,
6585wi::ints_for <generic_wide_int <wi::extended_tree <N> >,
6592wi::ints_for <generic_wide_int <wi::unextended_tree>,
6600 template <
typename T>
6603 template <
typename T>
6608#ifndef GENERATOR_FILE
6613template <
typename T>
6622template <
typename T>
6694 tree *, machine_mode *,
int *,
int *,
int *);
6797 return name0 == name1;
6802template <
typename...
F>
6844template <
typename...
F>
6900 operator location_t ()
const {
return m_combined_loc; }
auto_suppress_location_wrappers()
Definition tree.h:1357
~auto_suppress_location_wrappers()
Definition tree.h:1358
tree & base
Definition tree.h:6710
const char * str
Definition tree.h:6711
tree & node
Definition tree.h:6709
code_helper(tree_code code)
Definition tree.h:84
tree_code safe_as_tree_code() const
Definition tree.h:112
bool is_internal_fn() const
Definition tree.h:137
code_helper()
Definition tree.h:83
bool operator!=(const code_helper &other)
Definition tree.h:99
code_helper(internal_fn fn)
Definition tree.h:86
bool is_fn_code() const
Definition tree.h:92
bool operator==(const code_helper &other)
Definition tree.h:98
int rep
Definition tree.h:104
code_helper(combined_fn fn)
Definition tree.h:85
int get_rep() const
Definition tree.h:95
bool is_tree_code() const
Definition tree.h:91
bool is_builtin_fn() const
Definition tree.h:143
combined_fn safe_as_fn_code() const
Definition tree.h:122
Definition genmatch.cc:845
Definition wide-int.h:776
op_location_t(location_t operator_loc, location_t combined_loc)
Definition tree.h:6826
op_location_t(location_t combined_loc)
Definition tree.h:6820
location_t m_operator_loc
Definition tree.h:6816
location_t m_combined_loc
Definition tree.h:6817
C coeffs[N]
Definition poly-int.h:429
tree * end()
Definition tree.h:4729
tree v
Definition tree.h:4725
tree_vec_range(tree v)
Definition tree.h:4727
tree * begin()
Definition tree.h:4728
unsigned int get_precision() const
Definition tree.h:6397
const_tree m_t
Definition tree.h:6205
const HOST_WIDE_INT * get_val() const
Definition tree.h:6404
const_tree get_tree() const
Definition tree.h:6214
extended_tree()
Definition tree.h:6208
unsigned int get_len() const
Definition tree.h:6411
Definition wide-int.h:707
const_tree get_tree() const
Definition tree.h:6189
unsigned int get_precision() const
Definition tree.h:6433
unextended_tree()
Definition tree.h:6183
unextended_tree(const_tree t)
Definition tree.h:6184
unsigned int get_len() const
Definition tree.h:6445
const HOST_WIDE_INT * get_val() const
Definition tree.h:6439
const_tree m_t
Definition tree.h:6180
static wide_int from(const wide_int_ref &, unsigned int, signop)
Definition wide-int.h:1289
tls_model
Definition coretypes.h:198
excess_precision_type
Definition coretypes.h:439
const union tree_node * const_tree
Definition coretypes.h:98
#define GTY(x)
Definition coretypes.h:41
void(* gt_pointer_operator)(void *, void *, void *)
Definition coretypes.h:462
class bitmap_head * bitmap
Definition coretypes.h:51
union tree_node * tree
Definition coretypes.h:97
void ATTRIBUTE_NORETURN
Definition diagnostic-core.h:72
void copy_warning(location_t to, location_t from)
Definition diagnostic-spec.cc:185
bool warning_suppressed_at(location_t loc, opt_code opt)
Definition diagnostic-spec.cc:126
bool suppress_warning_at(location_t loc, opt_code opt, bool supp)
Definition diagnostic-spec.cc:149
scalar_int_mode word_mode
Definition emit-rtl.cc:78
void set_decl_rtl(tree t, rtx x)
Definition emit-rtl.cc:1447
tree get_inner_reference(tree exp, poly_int64 *pbitsize, poly_int64 *pbitpos, tree *poffset, machine_mode *pmode, int *punsignedp, int *preversep, int *pvolatilep)
Definition expr.cc:8324
bool complete_ctor_at_level_p(const_tree type, HOST_WIDE_INT num_elts, const_tree last_type)
Definition expr.cc:7268
tree build_personality_function(const char *lang)
Definition expr.cc:13976
static vector< name_map > names
Definition gcov.cc:540
static type_p type(options_p *optsp, bool nested)
Definition gengtype-parse.cc:883
static class line_maps * line_table
Definition genmatch.cc:55
built_in_function
Definition genmatch.cc:354
@ END_BUILTINS
Definition genmatch.cc:356
combined_fn
Definition genmatch.cc:365
@ CFN_LAST
Definition genmatch.cc:374
internal_fn
Definition genmatch.cc:360
tree_code
Definition genmatch.cc:347
@ MAX_TREE_CODES
Definition genmatch.cc:349
#define NUM_POLY_INT_COEFFS
Definition genmodes.cc:859
#define N
Definition gensupport.cc:202
bool ggc_marked_p(const void *p)
Definition ggc-page.cc:1581
void gt_ggc_mx(const char *&x)
Definition ggc-page.cc:1518
void gt_pch_nx(const char *)
Definition ggc.h:341
T * ggc_alloc(ALONE_CXX_MEM_STAT_INFO)
Definition ggc.h:184
void suppress_warning(gimple *, opt_code=all_warnings, bool=true) ATTRIBUTE_NONNULL(1)
Definition warning-control.cc:173
bool warning_suppressed_p(const gimple *, opt_code=all_warnings) ATTRIBUTE_NONNULL(1)
Definition warning-control.cc:138
int exact_log2(unsigned HOST_WIDE_INT x)
Definition hwint.cc:75
bool pow2p_hwi(unsigned HOST_WIDE_INT x)
Definition hwint.h:179
#define HOST_WIDE_INT_M1U
Definition hwint.h:72
#define HOST_WIDE_INT_1U
Definition hwint.h:70
bool int_n_enabled_p[NUM_INT_N_ENTS]
Definition tree.cc:231
ALWAYS_INLINE poly_uint16 GET_MODE_PRECISION(machine_mode mode)
Definition machmode.h:700
Definition fold-const.cc:4229
void add_expr(const_tree t, inchash::hash &hstate, unsigned int flags)
Definition fold-const.cc:4237
Definition double-int.h:439
precision_type
Definition wide-int.h:387
@ INL_CONST_PRECISION
Definition wide-int.h:398
@ VAR_PRECISION
Definition wide-int.h:394
@ CONST_PRECISION
Definition wide-int.h:402
wide_int min_value(machine_mode, signop)
Definition rtl.h:2332
const poly_int< NUM_POLY_INT_COEFFS, generic_wide_int< unextended_tree > > tree_to_poly_wide_ref
Definition tree.h:6249
tree_to_offset_ref to_offset(const_tree)
Definition tree.h:6342
tree_to_poly_offset_ref to_poly_offset(const_tree)
Definition tree.h:6482
int cmps(const T1 &, const T2 &)
Definition wide-int.h:2444
const generic_wide_int< widest_extended_tree > tree_to_widest_ref
Definition tree.h:6231
UNARY_FUNCTION zext(const T &, unsigned int)
extended_tree< ADDR_MAX_PRECISION > offset_extended_tree
Definition tree.h:6229
tree_to_poly_widest_ref to_poly_widest(const_tree)
Definition tree.h:6465
bool fits_to_tree_p(const T &x, const_tree)
Definition tree.h:6555
const generic_wide_int< wide_int_ref_storage< false, false > > tree_to_wide_ref
Definition tree.h:6234
const generic_wide_int< offset_extended_tree > tree_to_offset_ref
Definition tree.h:6232
hwi_with_prec zero(unsigned int)
Definition wide-int.h:2018
const poly_int< NUM_POLY_INT_COEFFS, generic_wide_int< offset_extended_tree > > tree_to_poly_offset_ref
Definition tree.h:6246
tree_to_widest_ref to_widest(const_tree)
Definition tree.h:6317
rtx_to_poly_wide_ref to_poly_wide(const_rtx, machine_mode)
Definition rtl.h:2377
Ca unsigned int precision
Definition poly-int.h:742
wide_int from_mpz(const_tree, mpz_t, bool)
Definition wide-int.cc:253
bool fits_to_boolean_p(const T &x, const_tree)
Definition tree.h:6546
wide_int max_value(machine_mode, signop)
Definition rtl.h:2340
extended_tree< WIDEST_INT_MAX_PRECISION > widest_extended_tree
Definition tree.h:6228
tree_to_wide_ref to_wide(const_tree)
Definition tree.h:6372
UNARY_FUNCTION sext(const T &, unsigned int)
const poly_int< NUM_POLY_INT_COEFFS, generic_wide_int< widest_extended_tree > > tree_to_poly_widest_ref
Definition tree.h:6243
i
Definition poly-int.h:746
i
Definition poly-int.h:772
Ca const poly_int< N, Cb > & b
Definition poly-int.h:767
Ca & a
Definition poly-int.h:766
signop
Definition signop.h:28
#define PASS_MEM_STAT
Definition statistics.h:54
#define CXX_MEM_STAT_INFO
Definition statistics.h:58
Definition tree-loop-distribution.cc:240
Definition lra-remat.cc:89
Definition genautomata.cc:499
Definition double-int.h:50
Definition hash-traits.h:328
Definition hash-traits.h:321
tree signed_type
Definition tree.h:6631
tree unsigned_type
Definition tree.h:6632
poly_coeff_traits< T >::int_type int_type
Definition poly-int.h:198
Definition hash-map-traits.h:104
Definition hash-map-traits.h:33
static hashval_t hash(tree)
Definition tree.h:5896
static bool equal(tree_decl_map *a, tree_decl_map *b)
Definition tree.h:5850
static hashval_t hash(tree_decl_map *m)
Definition tree.h:5848
static int keep_cache_entry(tree_decl_map *&m)
Definition tree.h:5856
static hashval_t hash(tree)
Definition tree.h:5934
static hashval_t hash(tree)
Definition tree.h:5922
static hashval_t hash(tree)
Definition tree.h:5908
static hashval_t hash(tree_vec_map *m)
Definition tree.h:5872
static bool equal(tree_vec_map *a, tree_vec_map *b)
Definition tree.h:5875
static int keep_cache_entry(tree_vec_map *&m)
Definition tree.h:5881
Definition gengtype.h:252
Definition wide-int.h:427
generic_wide_int< extended_tree< N > > extended
Definition tree.h:6265
static extended zero(const extended &)
static extended zero(const extended &)
generic_wide_int< extended_tree< N > > extended
Definition tree.h:6258
generic_wide_int< unextended_tree > unextended
Definition tree.h:6272
static unextended zero(const unextended &)
Definition wide-int.h:2043
static int zero(const T &)
Definition wide-int.h:2044
#define NULL
Definition system.h:50
#define gcc_assert(EXPR)
Definition system.h:821
#define gcc_unreachable()
Definition system.h:848
#define WARN_UNUSED_RESULT
Definition system.h:840
#define CONST_CAST_TREE(X)
Definition system.h:1200
#define CONST_CAST(TYPE, X)
Definition system.h:1199
#define STATIC_ASSERT(X)
Definition system.h:871
#define DEBUG_FUNCTION
Definition system.h:1242
#define gcc_checking_assert(EXPR)
Definition system.h:828
tree(* walk_tree_fn)(tree *, int *, void *)
Definition tree-core.h:1023
omp_clause_code
Definition tree-core.h:245
built_in_class
Definition tree-core.h:165
@ NOT_BUILT_IN
Definition tree-core.h:166
@ BUILT_IN_FRONTEND
Definition tree-core.h:167
@ BUILT_IN_NORMAL
Definition tree-core.h:169
@ BUILT_IN_MD
Definition tree-core.h:168
tree_code_class
Definition tree-core.h:226
@ tcc_comparison
Definition tree-core.h:233
@ tcc_expression
Definition tree-core.h:240
@ tcc_type
Definition tree-core.h:230
tree_node_structure_enum
Definition tree-core.h:540
unsigned short priority_type
Definition tree-core.h:1020
clobber_kind
Definition tree-core.h:992
@ CLOBBER_UNDEF
Definition tree-core.h:994
#define NUM_TREE_CODES
Definition tree-core.h:156
tree(* walk_tree_lh)(tree *, int *, tree(*)(tree *, int *, void *), void *, hash_set< tree > *)
Definition tree-core.h:1026
tree arg_size_in_bytes(const_tree type)
Definition tree.cc:14827
bool flexible_array_type_p(const_tree type)
Definition tree.cc:14785
tree get_attr_nonstring_decl(tree expr, tree *ref)
Definition tree.cc:15109
unsigned const char omp_clause_num_ops[]
Definition tree.cc:237
tree build_zero_cst(tree type)
Definition tree.cc:2637
bool default_is_empty_record(const_tree type)
Definition tree.cc:14767
bool nonnull_arg_p(const_tree arg)
Definition tree.cc:14523
location_t set_block(location_t loc, tree block)
Definition tree.cc:14586
bool expr_type_first_operand_type_p(tree_code code)
Definition tree.cc:14836
const builtin_structptr_type builtin_structptr_types[6]
Definition tree.cc:14917
HOST_WIDE_INT arg_int_size_in_bytes(const_tree type)
Definition tree.cc:14819
int get_target_clone_attr_len(tree arglist)
Definition tree.cc:15161
bool is_empty_type(const_tree type)
Definition tree.cc:14745
location_t set_source_range(tree expr, location_t start, location_t finish)
Definition tree.cc:14596
struct int_n_trees_t int_n_trees[NUM_INT_N_ENTS]
Definition tree.cc:232
bool tree_contains_struct[MAX_TREE_CODES][64]
Definition tree.cc:234
unsigned fndecl_dealloc_argno(tree fndecl)
Definition tree.cc:15047
HOST_WIDE_INT int_size_in_bytes(const_tree)
Definition tree.cc:3609
void decl_value_expr_insert(tree, tree)
Definition tree.cc:5946
int suppress_location_wrappers
Definition tree.cc:14668
void overwrite_decl_assembler_name(tree decl, tree name)
Definition tree.cc:725
void get_type_static_bounds(const_tree, mpz_t, mpz_t)
Definition tree.cc:8281
bool check_lang_type(const_tree cand, const_tree base)
Definition tree.cc:5499
special_array_member component_ref_sam_type(tree)
Definition tree.cc:13164
bool type_list_equal(const_tree, const_tree)
Definition tree.cc:6309
void build_common_tree_nodes(bool)
Definition tree.cc:9412
#define TYPE_NAME(NODE)
Definition tree.h:2248
bool is_lang_specific(const_tree t)
Definition tree.h:5974
tree strip_array_types(tree type)
Definition tree.h:4979
tree build_pointer_type(tree)
Definition tree.cc:7023
tree function_args_iter_cond(function_args_iterator *i)
Definition tree.h:5466
tree wide_int_to_tree(tree type, const poly_wide_int_ref &cst)
Definition tree.cc:1866
#define TREE_VALUE(NODE)
Definition tree.h:1210
poly_uint64 bit_field_offset(const_tree t)
Definition tree.h:5640
tree build4(enum tree_code, tree, tree, tree, tree, tree CXX_MEM_STAT_INFO)
tree build_vl_exp(enum tree_code, int CXX_MEM_STAT_INFO)
tree make_anon_name()
Definition tree.cc:8854
tree build3(enum tree_code, tree, tree, tree, tree CXX_MEM_STAT_INFO)
tree build_bitint_type(unsigned HOST_WIDE_INT, int)
Definition tree.cc:7181
tree build_constructor_from_vec(tree, const vec< tree, va_gc > *)
Definition tree.cc:2300
#define COMPLETE_TYPE_P(NODE)
Definition tree.h:708
unsigned int element_precision(const_tree)
Definition tree.cc:6791
const char * get_name(tree)
Definition tree.cc:11775
#define DECL_CONTEXT(NODE)
Definition tree.h:2733
bool operation_can_overflow(enum tree_code)
Definition tree.cc:6882
int allocate_decl_uid(void)
Definition tree.cc:1170
enum tree_code tree_code_for_canonical_type_merging(enum tree_code code)
Definition tree.h:5791
tree build_pointer_type_for_mode(tree, machine_mode, bool)
Definition tree.cc:6959
#define target_option_default_node
Definition tree.h:4618
tree unsigned_type_for(tree)
Definition tree.cc:11177
#define DECL_ORIGINAL_TYPE(NODE)
Definition tree.h:3561
tree num_ending_zeros(const_tree)
Definition tree.cc:11340
tree signed_type_for(tree)
Definition tree.cc:11188
int tree_floor_log2(const_tree)
Definition tree.cc:3031
tree build_int_cst_type(tree, poly_int64)
Definition tree.cc:1523
bool operation_no_trapping_overflow(tree, enum tree_code)
Definition tree.cc:6912
tree make_tree(tree, rtx)
Definition expmed.cc:5372
tree build_block(tree, tree, tree, tree)
Definition tree.cc:5442
unsigned int tree_decl_map_hash(const void *)
Definition tree.cc:5809
tree max_object_size()
Definition tree.cc:14930
poly_uint64 TYPE_VECTOR_SUBPARTS(const_tree node)
Definition tree.h:4243
tree build_vector_type(tree, poly_int64)
Definition tree.cc:10251
#define optimization_default_node
Definition tree.h:4614
#define TREE_READONLY(NODE)
Definition tree.h:934
tree build_function_type_list(tree,...)
Definition tree.cc:7591
tree build_omp_clause(location_t, enum omp_clause_code)
Definition tree.cc:10724
#define DECL_FUNCTION_SPECIFIC_TARGET(NODE)
Definition tree.h:3516
tree build_minus_one_cst(tree)
Definition tree.cc:2596
tree size_in_bytes_loc(location_t, const_tree)
Definition tree.cc:3586
cst_size_error
Definition tree.h:4989
@ cst_size_too_big
Definition tree.h:4993
@ cst_size_not_constant
Definition tree.h:4991
@ cst_size_ok
Definition tree.h:4990
@ cst_size_overflow
Definition tree.h:4994
@ cst_size_negative
Definition tree.h:4992
tree get_containing_scope(const_tree)
Definition tree.cc:8478
tree build_vec_series(tree, tree, tree)
Definition tree.cc:2139
#define call_expr_nargs(NODE)
Definition tree.h:1472
tree build_nonstandard_integer_type(unsigned HOST_WIDE_INT, int)
Definition tree.cc:7117
tree get_narrower(tree, int *)
Definition tree.cc:8071
#define DECL_FIELD_BIT_OFFSET(NODE)
Definition tree.h:3012
tree obj_type_ref_class(const_tree ref, bool=false)
Definition ipa-devirt.cc:1910
bool tree_int_cst_lt(const_tree t1, const_tree t2)
Definition tree.h:6588
tree build1(enum tree_code, tree, tree CXX_MEM_STAT_INFO)
bool real_zerop(const_tree)
Definition tree.cc:3155
built_in_function as_builtin_fn(combined_fn code)
Definition tree.h:54
bool really_constant_p(const_tree)
Definition tree.cc:3267
bool needs_to_live_in_memory(const_tree)
Definition tree.cc:11085
#define TYPE_PRECISION(NODE)
Definition tree.h:2245
tree build_method_type_directly(tree, tree, tree)
Definition tree.cc:7664
bool zerop(const_tree)
Definition tree.cc:2841
#define TREE_INT_CST_NUNITS(NODE)
Definition tree.h:1138
unsigned int vector_cst_encoded_nelts(const_tree t)
Definition tree.h:4655
built_in_function DECL_FUNCTION_CODE(const_tree decl)
Definition tree.h:4318
tree drop_tree_overflow(tree)
Definition tree.cc:12794
#define EXPR_CHECK(T)
Definition tree.h:500
tree build_offset_type(tree, tree)
Definition tree.cc:7740
tree build_alloca_call_expr(tree, unsigned int, HOST_WIDE_INT)
Definition tree.cc:10995
bool integer_all_onesp(const_tree)
Definition tree.cc:2917
#define TREE_OPERAND(NODE, I)
Definition tree.h:1285
tree maybe_build_call_expr_loc(location_t, combined_fn, tree, int,...)
Definition tree.cc:10956
unsigned crc32_unsigned_n(unsigned, unsigned, unsigned)
Definition tree.cc:8792
tree build_varargs_function_type_list(tree,...)
Definition tree.cc:7608
tree build_call_expr_loc_vec(location_t, tree, vec< tree, va_gc > *)
Definition tree.cc:10871
int tree_int_cst_sgn(const_tree)
Definition tree.cc:6498
poly_uint64 bit_field_size(const_tree t)
Definition tree.h:5631
bool poly_int_tree_p(const_tree t, poly_int64 *value)
Definition tree.h:5004
void free_node(tree)
Definition tree.cc:1294
#define DECL_NAME(NODE)
Definition tree.h:2681
bool canonical_type_used_p(const_tree t)
Definition tree.h:5821
tree build_optimization_node(struct gcc_options *opts, struct gcc_options *opts_set)
Definition tree.cc:11967
tree save_expr(tree)
Definition tree.cc:3948
tree build_constructor_from_list(tree, tree)
Definition tree.cc:2280
void protected_set_expr_location(tree, location_t)
Definition tree.cc:5459
const char * get_tree_code_name(enum tree_code)
Definition tree.cc:12775
tree decl_function_context(const_tree)
Definition tree.cc:8502
priority_type decl_init_priority_lookup(tree)
Definition tree.cc:5817
void decl_init_priority_insert(tree, priority_type)
Definition tree.cc:5843
#define IS_EXPR_CODE_CLASS(CLASS)
Definition tree.h:293
HOST_WIDE_INT max_int_size_in_bytes(const_tree)
Definition tree.cc:3629
tree build_reference_type(tree)
Definition tree.cc:7095
bool tree_invariant_p(tree)
Definition tree.cc:3919
tree tree_last(tree)
Definition tree.cc:3484
void recompute_constructor_flags(tree)
Definition tree.cc:2202
tree byte_position(const_tree)
Definition tree.cc:3672
tree build_vector_from_ctor(tree, const vec< constructor_elt, va_gc > *)
Definition tree.cc:2057
tree signed_or_unsigned_type_for(int, tree)
Definition tree.cc:11125
tree build4_loc(location_t loc, enum tree_code code, tree type, tree arg0, tree arg1, tree arg2, tree arg3 CXX_MEM_STAT_INFO)
Definition tree.h:4779
void decl_fini_priority_insert(tree, priority_type)
Definition tree.cc:5863
bool type_with_interoperable_signedness(const_tree)
Definition tree.cc:13739
tree build_call_valist(tree, tree, int, va_list)
Definition tree.cc:10807
tree build_replicated_int_cst(tree, unsigned, HOST_WIDE_INT)
tree build_truth_vector_type_for_mode(poly_uint64, machine_mode)
Definition tree.cc:10259
void DEBUG_FUNCTION verify_type(const_tree t)
Definition tree.cc:14085
tree build_debug_expr_decl(tree type)
Definition tree.cc:5396
bool block_may_fallthru(const_tree)
Definition tree.cc:12682
int struct_ptr_eq(const void *a, const void *b)
Definition tree.h:5574
bool contains_placeholder_p(const_tree)
Definition tree.cc:4092
#define DECL_FUNCTION_SPECIFIC_OPTIMIZATION(NODE)
Definition tree.h:3521
#define AGGREGATE_TYPE_P(TYPE)
Definition tree.h:693
int tree_map_base_eq(const void *, const void *)
Definition tree.cc:5773
#define sizetype
Definition tree.h:5102
bool maybe_special_function_p(const_tree fndecl)
Definition tree.h:6104
tree * function_args_iter_cond_ptr(function_args_iterator *i)
Definition tree.h:5457
#define TREE_VEC_BEGIN(NODE)
Definition tree.h:1214
tree build_array_type_nelts(tree, poly_uint64)
Definition tree.cc:7411
bool ptrofftype_p(tree type)
Definition tree.h:5601
tree first_call_expr_arg(tree exp, call_expr_arg_iterator *iter)
Definition tree.h:5941
void tree_set_block(tree, tree)
Definition tree.cc:11742
combined_fn get_call_combined_fn(const_tree)
Definition tree.cc:8679
enum tree_node_structure_enum tree_node_structure(const_tree)
Definition tree.cc:4052
tree build_case_label(tree, tree, tree)
Definition tree.cc:2758
tree build2_loc(location_t loc, enum tree_code code, tree type, tree arg0, tree arg1 CXX_MEM_STAT_INFO)
Definition tree.h:4759
#define TREE_INT_CST_LOW(NODE)
Definition tree.h:1143
tree build_vector_type_for_mode(tree, machine_mode)
Definition tree.cc:10216
tree builtin_decl_unreachable()
Definition tree.cc:11023
int simple_cst_equal(const_tree, const_tree)
Definition tree.cc:6542
bitmap get_nonnull_args(const_tree)
Definition tree.cc:14690
enum tls_model decl_tls_model(const_tree)
Definition tree.cc:919
bool tree_map_base_marked_p(const void *)
Definition tree.cc:5793
bool tree_zero_one_valued_p(tree)
unsigned int tree_int_cst_min_precision(tree, signop)
Definition tree.cc:6514
tree block_ultimate_origin(const_tree)
Definition tree.cc:12035
tree build3_loc(location_t loc, enum tree_code code, tree type, tree arg0, tree arg1, tree arg2 CXX_MEM_STAT_INFO)
Definition tree.h:4769
tree build_variant_type_copy(tree CXX_MEM_STAT_INFO)
#define TREE_OPTIMIZATION(NODE)
Definition tree.h:3591
tree build_nonshared_array_type(tree, tree)
Definition tree.cc:7402
bool warn_deprecated_use(tree, tree)
Definition tree.cc:12436
tree build_empty_stmt(location_t)
Definition tree.cc:10712
bool inlined_function_outer_scope_p(const_tree block)
Definition tree.h:5485
tree build_array_type_1(tree, tree, bool, bool, bool)
Definition tree.cc:7337
poly_int64 tree_to_poly_int64(const_tree) ATTRIBUTE_NONNULL(1) ATTRIBUTE_PURE
Definition tree.cc:3308
void function_args_iter_init(function_args_iterator *i, const_tree fntype)
Definition tree.h:5448
#define tree_decl_map_eq
Definition tree.h:5842
bool tree_fits_uhwi_p(const_tree) ATTRIBUTE_PURE
Definition tree.cc:6435
bool builtin_fn_p(combined_fn code)
Definition tree.h:45
bool commutative_ternary_tree_code(enum tree_code)
Definition genmatch.cc:419
tree build_function_type_array(tree, int, tree *)
Definition tree.cc:7643
location_t * block_nonartificial_location(tree)
Definition tree.cc:11844
bool type_has_mode_precision_p(const_tree t)
Definition tree.h:6718
bool typedef_variant_p(const_tree type)
Definition tree.h:5564
ATTRIBUTE_WARN_UNUSED_RESULT tree protected_set_expr_location_unshare(tree, location_t)
Definition fold-const.cc:239
bool commutative_tree_code(enum tree_code)
Definition genmatch.cc:382
bool integer_truep(const_tree)
Definition tree.cc:2994
tree create_artificial_label(location_t)
Definition tree.cc:11759
void assign_assembler_name_if_needed(tree)
Definition tree.cc:813
tree decl_value_expr_lookup(tree)
Definition tree.cc:5932
void function_args_iter_next(function_args_iterator *i)
Definition tree.h:5473
#define TREE_CODE_CLASS(CODE)
Definition tree.h:202
HOST_WIDE_INT int_bit_position(const_tree field)
Definition tree.h:6644
hashval_t struct_ptr_hash(const void *a)
Definition tree.h:5582
bool desired_pro_or_demotion_p(const_tree to_type, const_tree from_type)
Definition tree.h:6692
tree bit_position(const_tree)
Definition tree.cc:3662
bool decl_address_invariant_p(const_tree)
Definition tree.cc:3796
tree build_poly_int_cst(tree, const poly_wide_int_ref &)
Definition tree.cc:1840
unsigned crc32_string(unsigned, const char *)
Definition tree.cc:8822
tree build_tree_list(tree, tree CXX_MEM_STAT_INFO)
#define BLOCK_SOURCE_LOCATION(NODE)
Definition tree.h:2217
constexpr opt_code all_warnings
Definition tree.h:6838
bool real_minus_onep(const_tree)
Definition tree.cc:3214
unsigned HOST_WIDE_INT tree_to_uhwi(const_tree) ATTRIBUTE_NONNULL(1) ATTRIBUTE_PURE
Definition tree.cc:6477
vec< tree, va_gc > ** decl_debug_args_lookup(tree)
Definition tree.cc:5963
tree skip_simple_constant_arithmetic(tree)
Definition tree.cc:4024
void set_decl_tls_model(tree, enum tls_model)
Definition tree.cc:929
bool valid_constant_size_p(const_tree, cst_size_error *=NULL)
Definition tree.cc:6743
#define DECL_UNCHECKED_FUNCTION_CODE(NODE)
Definition tree.h:2825
tree first_field(const_tree) ATTRIBUTE_NONNULL(1)
Definition tree.cc:3425
bool tree_fits_shwi_p(const_tree) ATTRIBUTE_PURE
Definition tree.cc:6405
void clean_symbol_name(char *)
Definition tree.cc:8834
void SET_TYPE_VECTOR_SUBPARTS(tree node, poly_uint64 subparts)
Definition tree.h:4265
const_tree get_ultimate_context(const_tree)
Definition tree.cc:8486
bool auto_var_p(const_tree)
Definition tree.cc:8310
tree stabilize_reference(tree)
Definition tree.cc:4823
void using_eh_for_cleanups(void)
Definition tree.cc:12761
tree tree_strip_any_location_wrapper(tree exp)
Definition tree.h:4401
tree build_fn_decl(const char *, tree)
Definition tree.cc:5408
bool error_operand_p(const_tree t)
Definition tree.h:4646
tree sign_mask_for(tree)
Definition tree.cc:2708
tree build5_loc(location_t loc, enum tree_code code, tree type, tree arg0, tree arg1, tree arg2, tree arg3, tree arg4 CXX_MEM_STAT_INFO)
Definition tree.h:4789
unsigned int tree_map_hash(const void *)
Definition tree.cc:5801
size_t tree_size(const_tree)
Definition tree.cc:1060
tree lhd_gcc_personality(void)
Definition tree.cc:12245
void set_decl_built_in_function(tree decl, built_in_class fclass, unsigned int fcode)
Definition tree.h:4350
tree vector_cst_elt(const_tree, unsigned int)
Definition tree.cc:10358
bool more_call_expr_args_p(const call_expr_arg_iterator *iter)
Definition tree.h:5957
bool integer_minus_onep(const_tree)
Definition tree.cc:2942
#define IDENTIFIER_LENGTH(NODE)
Definition tree.h:1194
bool built_in_function_equal_p(built_in_function name0, built_in_function name1)
Definition tree.h:6726
bool is_truth_type_for(tree, tree)
Definition tree.cc:11201
tree type_argument_type(const_tree, unsigned) ATTRIBUTE_NONNULL(1)
Definition tree.cc:6350
#define TYPE_UNSIGNED(NODE)
Definition tree.h:949
size_t tree_code_size(enum tree_code)
Definition tree.cc:948
tree build_complex_type(tree, bool named=false)
Definition tree.cc:7786
#define TREE_CODE(NODE)
Definition tree.h:324
tree build_aligned_type(tree, unsigned int)
Definition tree.cc:5693
bool integer_each_onep(const_tree)
Definition tree.cc:2901
tree build_vector_from_val(tree, tree)
Definition tree.cc:2088
bool handled_component_p(const_tree t)
Definition tree.h:5348
#define TYPE_MODE(NODE)
Definition tree.h:2254
tree cache_integer_cst(tree, bool might_duplicate=false)
Definition tree.cc:1881
tree build_function_type(tree, tree, bool=false)
Definition tree.cc:7498
tree build_real_from_int_cst(tree, const_tree)
Definition tree.cc:2435
tree skip_simple_arithmetic(tree)
Definition tree.cc:3989
tree build_each_one_cst(tree)
Definition tree.cc:2528
tree uniform_vector_p(const_tree)
Definition tree.cc:10553
tree array_ref_up_bound(tree)
Definition tree.cc:12917
unsigned crc32_byte(unsigned chksum, char byte)
Definition tree.h:5515
bool integer_zerop(const_tree)
Definition tree.cc:2852
tree build_complex_inf(tree, bool)
Definition tree.cc:2515
tree tree_strip_sign_nop_conversions(tree)
Definition tree.cc:12144
tree decl_comdat_group_id(const_tree)
Definition tree.cc:851
tree build_clobber(tree, enum clobber_kind=CLOBBER_UNDEF)
Definition tree.cc:2334
tree build_string(unsigned, const char *=NULL)
Definition tree.cc:2468
#define TYPE_SIGN(NODE)
Definition tree.h:952
tree build_call_nary(tree, tree, int,...)
Definition tree.cc:10792
bool builtin_decl_declared_p(enum built_in_function fncode)
Definition tree.h:6084
generic_wide_int< wi::extended_tree< WIDEST_INT_MAX_PRECISION *2 > > widest2_int_cst
Definition tree.h:6280
tree component_ref_size(tree, special_array_member *=NULL)
Definition tree.cc:13237
tree make_node(enum tree_code CXX_MEM_STAT_INFO)
void build_common_builtin_nodes(void)
Definition tree.cc:9828
tree build_builtin_unreachable(location_t)
Definition tree.cc:11041
tree array_type_nelts(const_tree)
Definition tree.cc:3692
bool array_ref_flexible_size_p(tree, bool *=NULL)
Definition tree.cc:12951
const char * combined_fn_name(combined_fn)
Definition tree.cc:14673
bool truth_value_p(enum tree_code code)
Definition tree.h:5590
int DECL_FE_FUNCTION_CODE(const_tree decl)
Definition tree.h:4340
#define FUNCTION_DECL_DECL_TYPE(NODE)
Definition tree.h:3354
unsigned int tree_ctz(const_tree)
Definition tree.cc:3043
#define EXPR_LOCATION(NODE)
Definition tree.h:1310
int tree_int_cst_sign_bit(const_tree)
Definition tree.cc:6486
source_range get_expr_source_range(tree expr)
Definition tree.h:1335
#define POINTER_TYPE_P(TYPE)
Definition tree.h:700
tree build_vector_a_then_b(tree, unsigned int, tree, tree)
Definition tree.cc:2185
unsigned int tree_map_base_hash(const void *)
Definition tree.cc:5783
bool decl_address_ip_invariant_p(const_tree)
Definition tree.cc:3833
tree get_typenode_from_name(const char *)
Definition tree.cc:14878
#define CAN_HAVE_LOCATION_P(NODE)
Definition tree.h:1332
#define TREE_TARGET_OPTION(NODE)
Definition tree.h:3605
void find_placeholder_in_expr(tree, vec< tree > *)
Definition tree.cc:4294
#define SSA_NAME_VERSION(NODE)
Definition tree.h:2101
tree decl_type_context(const_tree)
Definition tree.cc:8538
#define TYPE_P(NODE)
Definition tree.h:226
location_t tree_inlined_location(tree, bool=true)
Definition tree.cc:11893
bool operand_equal_for_phi_arg_p(const_tree, const_tree)
Definition tree.cc:11328
tree component_ref_field_offset(tree)
Definition tree.cc:13109
hashval_t iterative_hash_expr(const_tree tree, hashval_t seed)
Definition tree.h:5670
tree upper_bound_in_type(tree, tree)
Definition tree.cc:11242
tree uniform_integer_cst_p(tree)
Definition tree.cc:10605
void set_decl_section_name(tree, const char *)
Definition tree.cc:873
const_tree first_const_call_expr_arg(const_tree exp, const_call_expr_arg_iterator *iter)
Definition tree.h:5948
void set_builtin_decl_implicit_p(enum built_in_function fncode, bool implicit_p)
Definition tree.h:6036
tree decl_comdat_group(const_tree)
Definition tree.cc:841
void recompute_tree_invariant_for_addr_expr(tree)
Definition tree.cc:4904
tree strip_float_extensions(tree)
Definition tree.cc:12153
tree reconstruct_complex_type(tree, tree)
Definition tree.cc:10163
tree staticp(tree)
Definition tree.cc:3729
tree build_range_type(tree, tree, tree)
Definition tree.cc:7262
void tree_cc_finalize(void)
Definition tree.cc:15182
vec< tree, va_gc > ** decl_debug_args_insert(tree)
Definition tree.cc:5981
#define TREE_CHAIN(NODE)
Definition tree.h:511
bool variably_modified_type_p(tree, tree)
Definition tree.cc:8363
bool builtin_decl_implicit_p(enum built_in_function fncode)
Definition tree.h:6072
tree build_all_ones_cst(tree)
Definition tree.cc:2581
bool fndecl_built_in_p(const_tree node)
Definition tree.h:6747
tree build_call_expr_internal_loc_array(location_t, enum internal_fn, tree, int, const tree *)
bool initializer_zerop(const_tree, bool *=NULL)
Definition tree.cc:10389
tree builtin_decl_explicit(enum built_in_function fncode)
Definition tree.h:5992
bool vec_member(const_tree, vec< tree, va_gc > *)
Definition tree.cc:3358
tree strip_zero_offset_components(tree)
Definition tree.cc:12231
#define VL_EXP_CLASS_P(NODE)
Definition tree.h:277
bool stdarg_p(const_tree)
Definition tree.cc:11805
tree build_complex(tree, tree, tree)
Definition tree.cc:2496
location_t tree_nonartificial_location(tree)
Definition tree.cc:11877
tree build_constructor_va(tree, int,...)
Definition tree.cc:2314
bool tree_nop_conversion_p(const_tree, const_tree)
Definition tree.cc:12054
int get_range_pos_neg(tree)
Definition tree.cc:14441
#define IDENTIFIER_POINTER(NODE)
Definition tree.h:1196
tree walk_tree_without_duplicates_1(tree *, walk_tree_fn, void *, walk_tree_lh)
Definition tree.cc:11719
tree value_member(tree, tree)
Definition tree.cc:3329
#define BUILTIN_VALID_P(FNCODE)
Definition tree.h:5980
tree grow_tree_vec(tree v, int CXX_MEM_STAT_INFO)
int type_num_arguments(const_tree)
Definition tree.cc:6329
bool valid_new_delete_pair_p(tree, tree, bool *=NULL)
Definition tree.cc:14957
constexpr opt_code no_warning
Definition tree.h:6836
#define POLY_INT_CST_P(NODE)
Definition tree.h:1148
void dump_tree_statistics(void)
Definition tree.cc:8724
#define TYPE_REVERSE_STORAGE_ORDER(NODE)
Definition tree.h:1089
tree vector_element_bits_tree(const_tree)
Definition tree.cc:13474
tree build_reference_type_for_mode(tree, machine_mode, bool)
Definition tree.cc:7031
#define TREE_STATIC(NODE)
Definition tree.h:772
int tree_int_cst_compare(const_tree t1, const_tree t2)
Definition tree.h:6607
tree builtin_decl_implicit(enum built_in_function fncode)
Definition tree.h:6001
bool integer_nonzerop(const_tree)
Definition tree.cc:2977
void set_call_expr_flags(tree, int)
Definition tree.cc:9765
#define CALL_EXPR_ARG(NODE, I)
Definition tree.h:1471
int DECL_MD_FUNCTION_CODE(const_tree decl)
Definition tree.h:4329
#define ANY_INTEGRAL_TYPE_P(TYPE)
Definition tree.h:622
tree build_opaque_vector_type(tree, poly_int64)
Definition tree.cc:10303
void set_builtin_decl(enum built_in_function fncode, tree decl, bool implicit_p)
Definition tree.h:6021
tree get_binfo_at_offset(tree, poly_int64, tree)
Definition tree.cc:12301
bool ptrdiff_tree_p(const_tree, poly_int64 *)
Definition tree.cc:3284
tree decl_assembler_name(tree)
Definition tree.cc:713
tree build_constructor_single(tree, tree, tree)
Definition tree.cc:2265
tree force_fit_type(tree, const poly_wide_int_ref &, int, bool)
Definition tree.cc:1554
#define TREE_INT_CST_ELT(NODE, I)
Definition tree.h:1142
tree tree_cons(tree, tree, tree CXX_MEM_STAT_INFO)
bool real_onep(const_tree)
Definition tree.cc:3188
bool initializer_each_zero_or_onep(const_tree)
Definition tree.cc:10514
#define DECL_EXTERNAL(NODE)
Definition tree.h:2870
bool builtin_decl_explicit_p(enum built_in_function fncode)
Definition tree.h:6063
tree size_in_bytes(const_tree t)
Definition tree.h:5089
tree build_nonstandard_boolean_type(unsigned HOST_WIDE_INT)
Definition tree.cc:7156
cl_target_option * target_opts_for_fn(const_tree fndecl)
Definition tree.h:6156
bool location_wrapper_p(const_tree exp)
Definition tree.h:4381
machine_mode element_mode(const_tree)
Definition tree.cc:13410
bool real_maybe_zerop(const_tree)
Definition tree.cc:3238
tree last_field(const_tree) ATTRIBUTE_NONNULL(1)
Definition tree.cc:3437
#define TREE_TYPE(NODE)
Definition tree.h:512
tree bitmask_inv_cst_vector_p(tree)
Definition tree.cc:10626
#define VL_EXP_OPERAND_LENGTH(NODE)
Definition tree.h:1292
#define INTEGRAL_TYPE_P(TYPE)
Definition tree.h:613
machine_mode vector_type_mode(const_tree)
Definition tree.cc:13429
tree type_hash_canon(unsigned int, tree)
Definition tree.cc:6231
tree build0(enum tree_code, tree CXX_MEM_STAT_INFO)
void copy_decl_built_in_function(tree newdecl, const_tree olddecl)
Definition tree.h:4361
tree build_uniform_cst(tree, tree)
Definition tree.cc:2126
#define DECL_BUILT_IN_CLASS(NODE)
Definition tree.h:3507
tree nreverse(tree)
Definition tree.cc:3497
tree build_call_array_loc(location_t, tree, tree, int, const tree *)
Definition tree.cc:10824
bool reverse_storage_order_for_component_p(tree t)
Definition tree.h:5369
#define TREE_CODE_LENGTH(CODE)
Definition tree.h:301
tree build_zero_cst(tree)
Definition tree.cc:2637
tree purpose_member(const_tree, tree)
Definition tree.cc:3344
bool cst_and_fits_in_hwi(const_tree)
Definition tree.cc:2021
bool int_fits_type_p(const_tree, const_tree) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_PURE
Definition tree.cc:8182
bool tree_fits_poly_uint64_p(const_tree) ATTRIBUTE_PURE
Definition tree.cc:6446
tree build_int_cst(tree, poly_int64)
Definition tree.cc:1503
unsigned int vector_element_bits(const_tree)
Definition tree.cc:13462
tree build_int_cstu(tree type, poly_uint64)
Definition tree.cc:1515
#define TREE_PUBLIC(NODE)
Definition tree.h:857
bool check_base_type(const_tree cand, const_tree base)
Definition tree.cc:5554
bool storage_order_barrier_p(const_tree t)
Definition tree.h:5407
tree chain_index(int, tree)
Definition tree.cc:3372
bool auto_var_in_fn_p(const_tree, const_tree)
Definition tree.cc:8321
tree build_index_type(tree)
Definition tree.cc:7285
bool associative_tree_code(enum tree_code)
Definition tree.cc:6805
tree build_call_expr_internal_loc(location_t, enum internal_fn, tree, int,...)
Definition tree.cc:10935
tree build_low_bits_mask(tree, unsigned)
Definition tree.cc:2009
tree build_call_expr_loc_array(location_t, tree, int, tree *)
Definition tree.cc:10858
#define TYPE_ARG_TYPES(NODE)
Definition tree.h:2527
bool integer_onep(const_tree)
Definition tree.cc:2876
HOST_WIDE_INT int_cst_value(const_tree)
Definition tree.cc:11097
bool complete_or_array_type_p(const_tree type)
Definition tree.h:5612
tree build_string_literal(unsigned, const char *=NULL, tree=char_type_node, unsigned HOST_WIDE_INT=HOST_WIDE_INT_M1U)
Definition tree.cc:11055
access_mode
Definition tree.h:5830
@ access_deferred
Definition tree.h:5835
@ access_none
Definition tree.h:5831
@ access_read_write
Definition tree.h:5834
@ access_write_only
Definition tree.h:5833
@ access_read_only
Definition tree.h:5832
tree get_qualified_type(tree, int)
Definition tree.cc:5612
wi::tree_to_poly_wide_ref poly_int_cst_value(const_tree x)
Definition tree.h:6453
#define EXPR_LOCATION_WRAPPER_P(NODE)
Definition tree.h:4374
bool internal_fn_p(combined_fn code)
Definition tree.h:63
#define DECL_UID(NODE)
Definition tree.h:2689
HOST_WIDE_INT tree_to_shwi(const_tree) ATTRIBUTE_NONNULL(1) ATTRIBUTE_PURE
Definition tree.cc:6466
unsigned crc32_unsigned(unsigned chksum, unsigned value)
Definition tree.h:5510
tree build_call_vec(tree, tree, const vec< tree, va_gc > *)
Definition tree.cc:10841
void init_ttree(void)
Definition tree.cc:680
tree tree_block(tree)
Definition tree.cc:11731
tree array_ref_low_bound(tree)
Definition tree.cc:12894
void decl_debug_expr_insert(tree, tree)
Definition tree.cc:5919
bool valid_vector_subparts_p(poly_uint64 subparts)
Definition tree.h:4301
tree tree_strip_nop_conversions(tree)
Definition tree.cc:12133
tree build1_loc(location_t loc, enum tree_code code, tree type, tree arg1 CXX_MEM_STAT_INFO)
Definition tree.h:4749
int tree_operand_length(const_tree node)
Definition tree.h:4171
hashval_t type_hash_canon_hash(tree)
Definition tree.cc:6006
bool type_with_alias_set_p(const_tree t)
Definition tree.h:6653
bool check_qualified_type(const_tree, const_tree, int)
Definition tree.cc:5581
tree make_int_cst(int, int CXX_MEM_STAT_INFO)
tree build_call_expr(tree, int,...)
Definition tree.cc:10900
#define REF_REVERSE_STORAGE_ORDER(NODE)
Definition tree.h:1107
bool tree_int_cst_le(const_tree t1, const_tree t2)
Definition tree.h:6597
tree build_distinct_type_copy(tree CXX_MEM_STAT_INFO)
bool types_same_for_odr(const_tree type1, const_tree type2)
Definition ipa-devirt.cc:361
tree build_varargs_function_type_array(tree, int, tree *)
Definition tree.cc:7653
tree build2(enum tree_code, tree, tree, tree CXX_MEM_STAT_INFO)
poly_uint64 tree_to_poly_uint64(const_tree) ATTRIBUTE_NONNULL(1) ATTRIBUTE_PURE
Definition tree.cc:3317
bool prototype_p(const_tree)
Definition tree.cc:11827
#define TREE_HASH(NODE)
Definition tree.h:550
tree copy_list(tree)
Definition tree.cc:1415
tree substitute_placeholder_in_expr(tree, tree)
Definition tree.cc:4560
tree build_call_expr_loc(location_t, tree, int,...)
Definition tree.cc:10883
#define DECL_NONALIASED(NODE)
Definition tree.h:3311
tree build5(enum tree_code, tree, tree, tree, tree, tree, tree CXX_MEM_STAT_INFO)
void prepare_target_option_nodes_for_pch(void)
Definition tree.cc:12024
struct cl_optimization * opts_for_fn(const_tree fndecl)
Definition tree.h:6146
bool type_contains_placeholder_p(tree)
Definition tree.cc:4248
#define VECTOR_CST_NPATTERNS(NODE)
Definition tree.h:1178
bool id_equal(const_tree id, const char *str)
Definition tree.h:4229
special_array_member
Definition tree.h:5756
#define error_mark_node
Definition tree.h:4409
tree build_nt_call_vec(tree, vec< tree, va_gc > *)
Definition tree.cc:5348
bool fixed_zerop(const_tree)
Definition tree.cc:3007
tree decl_debug_expr_lookup(tree)
Definition tree.cc:5905
tree build_array_type(tree, tree, bool=false)
Definition tree.cc:7393
#define TREE_VEC_END(NODE)
Definition tree.h:1215
void protected_set_expr_location_if_unset(tree, location_t)
Definition tree.cc:5475
tree build_real_from_wide(tree, const wide_int_ref &, signop)
Definition tree.cc:2450
tree build_decl(location_t, enum tree_code, tree, tree CXX_MEM_STAT_INFO)
tree truth_type_for(tree)
Definition tree.cc:11226
tree substitute_in_expr(tree, tree, tree)
Definition tree.cc:4368
tree get_unwidened(tree, tree)
Definition tree.cc:7987
bool tree_fits_poly_int64_p(const_tree) ATTRIBUTE_PURE
Definition tree.cc:6416
tree build_nt(enum tree_code,...)
Definition tree.cc:5323
tree make_tree_vec(int CXX_MEM_STAT_INFO)
#define TREE_ADDRESSABLE(NODE)
Definition tree.h:744
bool is_typedef_decl(const_tree x)
Definition tree.h:5555
bool subrange_type_for_debug_p(const_tree, tree *, tree *)
Definition tree.cc:7296
#define SET_EXPR_LOCATION(NODE, LOCUS)
Definition tree.h:1312
tree build_method_type(tree, tree)
Definition tree.cc:7726
tree make_vector(unsigned, unsigned CXX_MEM_STAT_INFO)
internal_fn as_internal_fn(combined_fn code)
Definition tree.h:72
WARN_UNUSED_RESULT tree maybe_wrap_with_location(tree, location_t)
Definition tree.cc:14630
int single_nonzero_element(const_tree)
Definition tree.cc:10681
HOST_WIDE_INT int_byte_position(const_tree)
Definition tree.cc:3683
void verify_constructor_flags(tree)
Definition tree.cc:2230
tree copy_node(tree CXX_MEM_STAT_INFO)
void error_unavailable_use(tree, tree)
Definition tree.cc:12523
bool chain_member(const_tree, const_tree)
Definition tree.cc:3382
bool using_eh_for_cleanups_p(void)
Definition tree.cc:12768
#define DECL_FIELD_OFFSET(NODE)
Definition tree.h:3006
#define VECTOR_CST_NELTS_PER_PATTERN(NODE)
Definition tree.h:1180
bool integer_pow2p(const_tree)
Definition tree.cc:2957
combined_fn as_combined_fn(built_in_function fn)
Definition tree.h:29
void set_function_decl_type(tree decl, function_decl_type t, bool set)
Definition tree.h:3361
vec< tree, va_gc > * ctor_to_vec(tree)
Definition tree.cc:3566
#define NULL_TREE
Definition tree.h:317
bool gimple_canonical_types_compatible_p(const_tree, const_tree, bool trust_type_canonical=true)
Definition tree.cc:13760
tree make_tree_binfo(unsigned CXX_MEM_STAT_INFO)
tree lower_bound_in_type(tree, tree)
Definition tree.cc:11295
tree get_base_address(tree t)
Definition tree.cc:12847
tree get_file_function_name(const char *)
Definition tree.cc:8889
priority_type decl_fini_priority_lookup(tree)
Definition tree.cc:5830
tree get_callee_fndecl(const_tree)
Definition tree.cc:8575
const_tree strip_invariant_refs(const_tree)
Definition tree.cc:12201
int list_length(const_tree)
Definition tree.cc:3399
tree build_translation_unit_decl(tree)
Definition tree.cc:5427
tree build_nonshared_range_type(tree, tree, tree)
Definition tree.cc:7270
tree double_int_to_tree(tree, double_int)
Definition tree.cc:1533
tree build_tree_list_vec(const vec< tree, va_gc > *CXX_MEM_STAT_INFO)
#define POLY_INT_CST_COEFF(NODE, I)
Definition tree.h:1152
#define VECTOR_TYPE_P(TYPE)
Definition tree.h:601
int tree_log2(const_tree)
Definition tree.cc:3019
int compare_tree_int(const_tree, unsigned HOST_WIDE_INT)
Definition tree.cc:6722
tree build_index_vector(tree, poly_uint64, poly_uint64)
Definition tree.cc:2163
void set_builtin_decl_declared_p(enum built_in_function fncode, bool declared_p)
Definition tree.h:6049
tree build_target_option_node(struct gcc_options *opts, struct gcc_options *opts_set)
Definition tree.cc:11995
tree build_qualified_type(tree, int CXX_MEM_STAT_INFO)
bool is_global_var(const_tree t)
Definition tree.h:6122
#define TREE_INT_CST_EXT_NUNITS(NODE)
Definition tree.h:1140
tree build_constructor(tree, vec< constructor_elt, va_gc > *CXX_MEM_STAT_INFO)
tree array_ref_element_size(tree)
Definition tree.cc:12866
#define TYPE_UID(NODE)
Definition tree.h:2235
#define char_type_node
Definition tree.h:4631
#define TREE_OPERAND_LENGTH(NODE)
Definition tree.h:1284
tree chainon(tree, tree)
Definition tree.cc:3457
const char * decl_section_name(const_tree)
Definition tree.cc:862
tree build_one_cst(tree)
Definition tree.cc:2543
tree walk_tree_1(tree *, walk_tree_fn, void *, hash_set< tree > *, walk_tree_lh)
Definition tree.cc:11442
bool virtual_method_call_p(const_tree, bool=false)
Definition tree.cc:12261
bool tree_int_cst_equal(const_tree, const_tree)
Definition tree.cc:6382
bool contains_bitfld_component_ref_p(const_tree)
Definition tree.cc:12597
bool may_be_aliased(const_tree var)
Definition tree.h:6132
#define WIDEST_INT_MAX_PRECISION
Definition wide-int.h:257
#define OFFSET_INT_ELTS
Definition wide-int.h:281
#define ADDR_MAX_PRECISION
Definition wide-int.h:276
const T2 & y
Definition wide-int.h:3870