150#define MARK_TS_BASE(C) \
151 (tree_contains_struct[C][TS_BASE] = true)
153#define MARK_TS_TYPED(C) \
155 tree_contains_struct[C][TS_TYPED] = true)
157#define MARK_TS_COMMON(C) \
158 (MARK_TS_TYPED (C), \
159 tree_contains_struct[C][TS_COMMON] = true)
161#define MARK_TS_TYPE_COMMON(C) \
162 (MARK_TS_COMMON (C), \
163 tree_contains_struct[C][TS_TYPE_COMMON] = true)
165#define MARK_TS_TYPE_WITH_LANG_SPECIFIC(C) \
166 (MARK_TS_TYPE_COMMON (C), \
167 tree_contains_struct[C][TS_TYPE_WITH_LANG_SPECIFIC] = true)
169#define MARK_TS_TYPE_NON_COMMON(C) \
170 (MARK_TS_TYPE_WITH_LANG_SPECIFIC (C), \
171 tree_contains_struct[C][TS_TYPE_NON_COMMON] = true) \
173#define MARK_TS_DECL_MINIMAL(C) \
174 (MARK_TS_COMMON (C), \
175 tree_contains_struct[C][TS_DECL_MINIMAL] = true)
177#define MARK_TS_DECL_COMMON(C) \
178 (MARK_TS_DECL_MINIMAL (C), \
179 tree_contains_struct[C][TS_DECL_COMMON] = true)
181#define MARK_TS_DECL_WRTL(C) \
182 (MARK_TS_DECL_COMMON (C), \
183 tree_contains_struct[C][TS_DECL_WRTL] = true)
185#define MARK_TS_DECL_WITH_VIS(C) \
186 (MARK_TS_DECL_WRTL (C), \
187 tree_contains_struct[C][TS_DECL_WITH_VIS] = true)
189#define MARK_TS_DECL_NON_COMMON(C) \
190 (MARK_TS_DECL_WITH_VIS (C), \
191 tree_contains_struct[C][TS_DECL_NON_COMMON] = true)
193#define MARK_TS_EXP(C) \
194 (MARK_TS_TYPED (C), \
195 tree_contains_struct[C][TS_EXP] = true)
199#define TREE_CODE_CLASS_STRING(CLASS)\
200 tree_code_class_strings[(int) (CLASS)]
202#if __cpp_inline_variables < 201606L
203#define TREE_CODE_CLASS(CODE) \
204 tree_code_type_tmpl <0>::tree_code_type[(int) (CODE)]
206#define TREE_CODE_CLASS(CODE) tree_code_type[(int) (CODE)]
211#define EXCEPTIONAL_CLASS_P(NODE)\
212 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_exceptional)
216#define CONSTANT_CLASS_P(NODE)\
217 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_constant)
222#define CONSTANT_CLASS_OR_WRAPPER_P(NODE)\
223 (CONSTANT_CLASS_P (tree_strip_any_location_wrapper (NODE)))
228 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_type)
233 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_declaration)
237 (TREE_CODE (NODE) == VAR_DECL)
241#define VAR_OR_FUNCTION_DECL_P(DECL)\
242 (TREE_CODE (DECL) == VAR_DECL || TREE_CODE (DECL) == FUNCTION_DECL)
247#define INDIRECT_REF_P(NODE)\
248 (TREE_CODE (NODE) == INDIRECT_REF)
252#define REFERENCE_CLASS_P(NODE)\
253 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_reference)
257#define COMPARISON_CLASS_P(NODE)\
258 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_comparison)
262#define UNARY_CLASS_P(NODE)\
263 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_unary)
267#define BINARY_CLASS_P(NODE)\
268 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_binary)
272#define STATEMENT_CLASS_P(NODE)\
273 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_statement)
278#define VL_EXP_CLASS_P(NODE)\
279 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_vl_exp)
283#define EXPRESSION_CLASS_P(NODE)\
284 (TREE_CODE_CLASS (TREE_CODE (NODE)) == tcc_expression)
288#define IS_TYPE_OR_DECL_P(NODE)\
289 (TYPE_P (NODE) || DECL_P (NODE))
294#define IS_EXPR_CODE_CLASS(CLASS)\
295 ((CLASS) >= tcc_reference && (CLASS) <= tcc_expression)
299#define EXPR_P(NODE) IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (NODE)))
301#if __cpp_inline_variables < 201606L
302#define TREE_CODE_LENGTH(CODE) \
303 tree_code_length_tmpl <0>::tree_code_length[(int) (CODE)]
305#define TREE_CODE_LENGTH(CODE) tree_code_length[(int) (CODE)]
311#define CASE_FLT_FN(FN) case FN: case FN##F: case FN##L
312#define CASE_FLT_FN_FLOATN_NX(FN) \
313 case FN##F16: case FN##F32: case FN##F64: case FN##F128: \
314 case FN##F32X: case FN##F64X: case FN##F128X
315#define CASE_FLT_FN_REENT(FN) case FN##_R: case FN##F_R: case FN##L_R
316#define CASE_INT_FN(FN) case FN: case FN##L: case FN##LL: case FN##IMAX
318#define NULL_TREE (tree) NULL
325#define TREE_CODE(NODE) ((enum tree_code) (NODE)->base.code)
326#define TREE_SET_CODE(NODE, VALUE) ((NODE)->base.code = (VALUE))
330#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007)
332#define TREE_CHECK(T, CODE) \
333(tree_check ((T), __FILE__, __LINE__, __FUNCTION__, (CODE)))
335#define TREE_NOT_CHECK(T, CODE) \
336(tree_not_check ((T), __FILE__, __LINE__, __FUNCTION__, (CODE)))
338#define TREE_CHECK2(T, CODE1, CODE2) \
339(tree_check2 ((T), __FILE__, __LINE__, __FUNCTION__, (CODE1), (CODE2)))
341#define TREE_NOT_CHECK2(T, CODE1, CODE2) \
342(tree_not_check2 ((T), __FILE__, __LINE__, __FUNCTION__, (CODE1), (CODE2)))
344#define TREE_CHECK3(T, CODE1, CODE2, CODE3) \
345(tree_check3 ((T), __FILE__, __LINE__, __FUNCTION__, (CODE1), (CODE2), (CODE3)))
347#define TREE_NOT_CHECK3(T, CODE1, CODE2, CODE3) \
348(tree_not_check3 ((T), __FILE__, __LINE__, __FUNCTION__, \
349 (CODE1), (CODE2), (CODE3)))
351#define TREE_CHECK4(T, CODE1, CODE2, CODE3, CODE4) \
352(tree_check4 ((T), __FILE__, __LINE__, __FUNCTION__, \
353 (CODE1), (CODE2), (CODE3), (CODE4)))
355#define TREE_NOT_CHECK4(T, CODE1, CODE2, CODE3, CODE4) \
356(tree_not_check4 ((T), __FILE__, __LINE__, __FUNCTION__, \
357 (CODE1), (CODE2), (CODE3), (CODE4)))
359#define TREE_CHECK5(T, CODE1, CODE2, CODE3, CODE4, CODE5) \
360(tree_check5 ((T), __FILE__, __LINE__, __FUNCTION__, \
361 (CODE1), (CODE2), (CODE3), (CODE4), (CODE5)))
363#define TREE_NOT_CHECK5(T, CODE1, CODE2, CODE3, CODE4, CODE5) \
364(tree_not_check5 ((T), __FILE__, __LINE__, __FUNCTION__, \
365 (CODE1), (CODE2), (CODE3), (CODE4), (CODE5)))
367#define TREE_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) \
368(tree_check6 ((T), __FILE__, __LINE__, __FUNCTION__, \
369 (CODE1), (CODE2), (CODE3), (CODE4), (CODE5), (CODE6)))
371#define TREE_NOT_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) \
372(tree_not_check6 ((T), __FILE__, __LINE__, __FUNCTION__, \
373 (CODE1), (CODE2), (CODE3), (CODE4), (CODE5), (CODE6)))
375#define CONTAINS_STRUCT_CHECK(T, STRUCT) \
376(contains_struct_check ((T), (STRUCT), __FILE__, __LINE__, __FUNCTION__))
378#define TREE_CLASS_CHECK(T, CLASS) \
379(tree_class_check ((T), (CLASS), __FILE__, __LINE__, __FUNCTION__))
381#define TREE_RANGE_CHECK(T, CODE1, CODE2) \
382(tree_range_check ((T), (CODE1), (CODE2), __FILE__, __LINE__, __FUNCTION__))
384#define OMP_CLAUSE_SUBCODE_CHECK(T, CODE) \
385(omp_clause_subcode_check ((T), (CODE), __FILE__, __LINE__, __FUNCTION__))
387#define OMP_CLAUSE_RANGE_CHECK(T, CODE1, CODE2) \
388(omp_clause_range_check ((T), (CODE1), (CODE2), \
389 __FILE__, __LINE__, __FUNCTION__))
392#define EXPR_CHECK(T) \
393(expr_check ((T), __FILE__, __LINE__, __FUNCTION__))
396#define NON_TYPE_CHECK(T) \
397(non_type_check ((T), __FILE__, __LINE__, __FUNCTION__))
400#define ANY_INTEGRAL_TYPE_CHECK(T) \
401(any_integral_type_check ((T), __FILE__, __LINE__, __FUNCTION__))
403#define TREE_INT_CST_ELT_CHECK(T, I) \
404(*tree_int_cst_elt_check ((T), (I), __FILE__, __LINE__, __FUNCTION__))
406#define TREE_VEC_ELT_CHECK(T, I) \
407(*(const_cast<tree *> ( \
408 tree_vec_elt_check ((T), (I), __FILE__, __LINE__, __FUNCTION__))))
410#define OMP_CLAUSE_ELT_CHECK(T, I) \
411(*(omp_clause_elt_check ((T), (I), __FILE__, __LINE__, __FUNCTION__)))
414#define TREE_OPERAND_CHECK(T, I) \
415(*(const_cast<tree *> ( \
416 tree_operand_check ((T), (I), __FILE__, __LINE__, __FUNCTION__))))
418#define TREE_OPERAND_CHECK_CODE(T, CODE, I) \
419(*(tree_operand_check_code ((T), (CODE), (I), \
420 __FILE__, __LINE__, __FUNCTION__)))
431#define TREE_CHAIN(NODE) \
432(CONTAINS_STRUCT_CHECK (NODE, TS_COMMON)->common.chain)
438#define TREE_TYPE(NODE) \
439(CONTAINS_STRUCT_CHECK (NODE, TS_TYPED)->typed.type)
441extern void tree_contains_struct_check_failed (
const_tree,
443 const char *,
int,
const char *)
446extern void tree_check_failed (
const_tree,
const char *,
int,
const char *,
448extern
void tree_not_check_failed (
const_tree, const
char *,
int, const
char *,
451 const
char *,
int, const
char *)
453extern
void tree_range_check_failed (
const_tree, const
char *,
int,
457extern
void tree_not_class_check_failed (
const_tree,
459 const
char *,
int, const
char *)
461extern
void tree_int_cst_elt_check_failed (
int,
int, const
char *,
464extern
void tree_vec_elt_check_failed (
int,
int, const
char *,
467extern
void phi_node_elt_check_failed (
int,
int, const
char *,
470extern
void tree_operand_check_failed (
int,
const_tree,
471 const
char *,
int, const
char *)
473extern
void omp_clause_check_failed (
const_tree, const
char *,
int,
476extern
void omp_clause_operand_check_failed (
int,
const_tree, const
char *,
479extern
void omp_clause_range_check_failed (
const_tree, const
char *,
int,
486#define CONTAINS_STRUCT_CHECK(T, ENUM) (T)
487#define TREE_CHECK(T, CODE) (T)
488#define TREE_NOT_CHECK(T, CODE) (T)
489#define TREE_CHECK2(T, CODE1, CODE2) (T)
490#define TREE_NOT_CHECK2(T, CODE1, CODE2) (T)
491#define TREE_CHECK3(T, CODE1, CODE2, CODE3) (T)
492#define TREE_NOT_CHECK3(T, CODE1, CODE2, CODE3) (T)
493#define TREE_CHECK4(T, CODE1, CODE2, CODE3, CODE4) (T)
494#define TREE_NOT_CHECK4(T, CODE1, CODE2, CODE3, CODE4) (T)
495#define TREE_CHECK5(T, CODE1, CODE2, CODE3, CODE4, CODE5) (T)
496#define TREE_NOT_CHECK5(T, CODE1, CODE2, CODE3, CODE4, CODE5) (T)
497#define TREE_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) (T)
498#define TREE_NOT_CHECK6(T, CODE1, CODE2, CODE3, CODE4, CODE5, CODE6) (T)
499#define TREE_CLASS_CHECK(T, CODE) (T)
500#define TREE_RANGE_CHECK(T, CODE1, CODE2) (T)
501#define EXPR_CHECK(T) (T)
502#define NON_TYPE_CHECK(T) (T)
503#define TREE_INT_CST_ELT_CHECK(T, I) ((T)->int_cst.val[I])
504#define TREE_VEC_ELT_CHECK(T, I) ((T)->vec.a[I])
505#define TREE_OPERAND_CHECK(T, I) ((T)->exp.operands[I])
506#define TREE_OPERAND_CHECK_CODE(T, CODE, I) ((T)->exp.operands[I])
507#define OMP_CLAUSE_ELT_CHECK(T, i) ((T)->omp_clause.ops[i])
508#define OMP_CLAUSE_RANGE_CHECK(T, CODE1, CODE2) (T)
509#define OMP_CLAUSE_SUBCODE_CHECK(T, CODE) (T)
510#define ANY_INTEGRAL_TYPE_CHECK(T) (T)
512#define TREE_CHAIN(NODE) ((NODE)->common.chain)
513#define TREE_TYPE(NODE) ((NODE)->typed.type)
517#define TREE_BLOCK(NODE) (tree_block (NODE))
518#define TREE_SET_BLOCK(T, B) (tree_set_block ((T), (B)))
520#include "tree-check.h"
522#define TYPE_CHECK(T) TREE_CLASS_CHECK (T, tcc_type)
523#define DECL_MINIMAL_CHECK(T) CONTAINS_STRUCT_CHECK (T, TS_DECL_MINIMAL)
524#define DECL_COMMON_CHECK(T) CONTAINS_STRUCT_CHECK (T, TS_DECL_COMMON)
525#define DECL_WRTL_CHECK(T) CONTAINS_STRUCT_CHECK (T, TS_DECL_WRTL)
526#define DECL_WITH_VIS_CHECK(T) CONTAINS_STRUCT_CHECK (T, TS_DECL_WITH_VIS)
527#define DECL_NON_COMMON_CHECK(T) CONTAINS_STRUCT_CHECK (T, TS_DECL_NON_COMMON)
528#define CST_CHECK(T) TREE_CLASS_CHECK (T, tcc_constant)
529#define STMT_CHECK(T) TREE_CLASS_CHECK (T, tcc_statement)
530#define VL_EXP_CHECK(T) TREE_CLASS_CHECK (T, tcc_vl_exp)
531#define FUNC_OR_METHOD_CHECK(T) TREE_CHECK2 (T, FUNCTION_TYPE, METHOD_TYPE)
532#define PTR_OR_REF_CHECK(T) TREE_CHECK2 (T, POINTER_TYPE, REFERENCE_TYPE)
534#define RECORD_OR_UNION_CHECK(T) \
535 TREE_CHECK3 (T, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE)
536#define NOT_RECORD_OR_UNION_CHECK(T) \
537 TREE_NOT_CHECK3 (T, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE)
538#define ARRAY_OR_INTEGER_TYPE_CHECK(T) \
539 TREE_CHECK2 (T, ARRAY_TYPE, INTEGER_TYPE)
541#define NUMERICAL_TYPE_CHECK(T) \
542 TREE_CHECK6 (T, INTEGER_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, REAL_TYPE, \
543 FIXED_POINT_TYPE, BITINT_TYPE)
547#define TYPE_HASH(TYPE) (TYPE_UID (TYPE))
551#define TREE_HASH(NODE) ((size_t) (NODE) & 0777777)
554#define CONVERT_EXPR_CODE_P(CODE) \
555 ((CODE) == NOP_EXPR || (CODE) == CONVERT_EXPR)
558#define CONVERT_EXPR_P(EXP) CONVERT_EXPR_CODE_P (TREE_CODE (EXP))
562#define CASE_CONVERT \
570#define STRIP_NOPS(EXP) \
571 (EXP) = tree_strip_nop_conversions (const_cast<tree> (EXP))
575#define STRIP_SIGN_NOPS(EXP) \
576 (EXP) = tree_strip_sign_nop_conversions (const_cast<tree> (EXP))
580#define STRIP_TYPE_NOPS(EXP) \
581 while ((CONVERT_EXPR_P (EXP) \
582 || TREE_CODE (EXP) == NON_LVALUE_EXPR) \
583 && TREE_OPERAND (EXP, 0) != error_mark_node \
584 && (TREE_TYPE (EXP) \
585 == TREE_TYPE (TREE_OPERAND (EXP, 0)))) \
586 (EXP) = TREE_OPERAND (EXP, 0)
591#define STRIP_USELESS_TYPE_CONVERSION(EXP) \
592 (EXP) = tree_ssa_strip_useless_type_conversions (EXP)
597#define STRIP_ANY_LOCATION_WRAPPER(EXP) \
598 (EXP) = tree_strip_any_location_wrapper (const_cast<tree> (EXP))
602#define VECTOR_TYPE_P(TYPE) (TREE_CODE (TYPE) == VECTOR_TYPE)
606#define VECTOR_BOOLEAN_TYPE_P(TYPE) \
607 (TREE_CODE (TYPE) == VECTOR_TYPE \
608 && TREE_CODE (TREE_TYPE (TYPE)) == BOOLEAN_TYPE)
614#define INTEGRAL_TYPE_P(TYPE) \
615 (TREE_CODE (TYPE) == ENUMERAL_TYPE \
616 || TREE_CODE (TYPE) == BOOLEAN_TYPE \
617 || TREE_CODE (TYPE) == INTEGER_TYPE \
618 || TREE_CODE (TYPE) == BITINT_TYPE)
622#define INTEGRAL_NB_TYPE_P(TYPE) \
623 (TREE_CODE (TYPE) == ENUMERAL_TYPE \
624 || TREE_CODE (TYPE) == INTEGER_TYPE \
625 || TREE_CODE (TYPE) == BITINT_TYPE)
630#define ANY_INTEGRAL_TYPE_P(TYPE) \
631 (INTEGRAL_TYPE_P (TYPE) \
632 || ((TREE_CODE (TYPE) == COMPLEX_TYPE \
633 || VECTOR_TYPE_P (TYPE)) \
634 && INTEGRAL_TYPE_P (TREE_TYPE (TYPE))))
639#define BITINT_TYPE_P(TYPE) \
640 (TREE_CODE (TYPE) == BITINT_TYPE \
641 || (TREE_CODE (TYPE) == ENUMERAL_TYPE \
642 && TREE_TYPE (TYPE) \
643 && TREE_CODE (TREE_TYPE (TYPE)) == BITINT_TYPE))
647#define NON_SAT_FIXED_POINT_TYPE_P(TYPE) \
648 (TREE_CODE (TYPE) == FIXED_POINT_TYPE && !TYPE_SATURATING (TYPE))
652#define SAT_FIXED_POINT_TYPE_P(TYPE) \
653 (TREE_CODE (TYPE) == FIXED_POINT_TYPE && TYPE_SATURATING (TYPE))
657#define FIXED_POINT_TYPE_P(TYPE) (TREE_CODE (TYPE) == FIXED_POINT_TYPE)
661#define SCALAR_FLOAT_TYPE_P(TYPE) (TREE_CODE (TYPE) == REAL_TYPE)
665#define COMPLEX_FLOAT_TYPE_P(TYPE) \
666 (TREE_CODE (TYPE) == COMPLEX_TYPE \
667 && TREE_CODE (TREE_TYPE (TYPE)) == REAL_TYPE)
671#define VECTOR_INTEGER_TYPE_P(TYPE) \
672 (VECTOR_TYPE_P (TYPE) \
673 && TREE_CODE (TREE_TYPE (TYPE)) == INTEGER_TYPE)
678#define VECTOR_FLOAT_TYPE_P(TYPE) \
679 (VECTOR_TYPE_P (TYPE) \
680 && TREE_CODE (TREE_TYPE (TYPE)) == REAL_TYPE)
686#define FLOAT_TYPE_P(TYPE) \
687 (SCALAR_FLOAT_TYPE_P (TYPE) \
688 || ((TREE_CODE (TYPE) == COMPLEX_TYPE \
689 || VECTOR_TYPE_P (TYPE)) \
690 && SCALAR_FLOAT_TYPE_P (TREE_TYPE (TYPE))))
693#define DECIMAL_FLOAT_TYPE_P(TYPE) \
694 (SCALAR_FLOAT_TYPE_P (TYPE) \
695 && DECIMAL_FLOAT_MODE_P (TYPE_MODE (TYPE)))
698#define RECORD_OR_UNION_TYPE_P(TYPE) \
699 (TREE_CODE (TYPE) == RECORD_TYPE \
700 || TREE_CODE (TYPE) == UNION_TYPE \
701 || TREE_CODE (TYPE) == QUAL_UNION_TYPE)
706#define AGGREGATE_TYPE_P(TYPE) \
707 (TREE_CODE (TYPE) == ARRAY_TYPE || RECORD_OR_UNION_TYPE_P (TYPE))
713#define POINTER_TYPE_P(TYPE) \
714 (TREE_CODE (TYPE) == POINTER_TYPE || TREE_CODE (TYPE) == REFERENCE_TYPE)
717#define FUNCTION_POINTER_TYPE_P(TYPE) \
718 (POINTER_TYPE_P (TYPE) && TREE_CODE (TREE_TYPE (TYPE)) == FUNCTION_TYPE)
721#define COMPLETE_TYPE_P(NODE) (TYPE_SIZE (NODE) != NULL_TREE)
724#define VOID_TYPE_P(NODE) (TREE_CODE (NODE) == VOID_TYPE)
727#define COMPLETE_OR_VOID_TYPE_P(NODE) \
728 (COMPLETE_TYPE_P (NODE) || VOID_TYPE_P (NODE))
731#define COMPLETE_OR_UNBOUND_ARRAY_TYPE_P(NODE) \
732 (COMPLETE_TYPE_P (TREE_CODE (NODE) == ARRAY_TYPE ? TREE_TYPE (NODE) : (NODE)))
734#define FUNC_OR_METHOD_TYPE_P(NODE) \
735 (TREE_CODE (NODE) == FUNCTION_TYPE || TREE_CODE (NODE) == METHOD_TYPE)
737#define OPAQUE_TYPE_P(NODE) \
738 (TREE_CODE (NODE) == OPAQUE_TYPE)
757#define TREE_ADDRESSABLE(NODE) ((NODE)->base.addressable_flag)
762#define CALL_EXPR_TAILCALL(NODE) \
763 (CALL_EXPR_CHECK (NODE)->base.addressable_flag)
767#define CALL_EXPR_MUST_TAIL_CALL(NODE) \
768 (CALL_EXPR_CHECK (NODE)->base.static_flag)
772#define CASE_LOW_SEEN(NODE) \
773 (CASE_LABEL_EXPR_CHECK (NODE)->base.addressable_flag)
775#define PREDICT_EXPR_OUTCOME(NODE) \
776 ((enum prediction) (PREDICT_EXPR_CHECK (NODE)->base.addressable_flag))
777#define SET_PREDICT_EXPR_OUTCOME(NODE, OUTCOME) \
778 (PREDICT_EXPR_CHECK (NODE)->base.addressable_flag = (int) OUTCOME)
779#define PREDICT_EXPR_PREDICTOR(NODE) \
780 ((enum br_predictor)tree_to_shwi (TREE_OPERAND (PREDICT_EXPR_CHECK (NODE), 0)))
785#define TREE_STATIC(NODE) ((NODE)->base.static_flag)
788#define TREE_NO_TRAMPOLINE(NODE) (ADDR_EXPR_CHECK (NODE)->base.static_flag)
793#define CLEANUP_EH_ONLY(NODE) ((NODE)->base.static_flag)
797#define TRY_CATCH_IS_CLEANUP(NODE) \
798 (TRY_CATCH_EXPR_CHECK (NODE)->base.static_flag)
802#define CASE_HIGH_SEEN(NODE) \
803 (CASE_LABEL_EXPR_CHECK (NODE)->base.static_flag)
806#define ENUM_IS_SCOPED(NODE) (ENUMERAL_TYPE_CHECK (NODE)->base.static_flag)
809#define ENUM_IS_OPAQUE(NODE) (ENUMERAL_TYPE_CHECK (NODE)->base.private_flag)
813#define CONST_WRAPPER_P(NODE) \
814 (TREE_CHECK (NODE, VIEW_CONVERT_EXPR)->base.private_flag)
821#define TREE_NO_WARNING(NODE) ((NODE)->base.nowarning_flag)
825#define TRANSLATION_UNIT_WARN_EMPTY_P(NODE) \
826 (TRANSLATION_UNIT_DECL_CHECK (NODE)->decl_common.decl_flag_0)
829#define TYPE_EMPTY_P(NODE) (TYPE_CHECK (NODE)->type_common.empty_flag)
832#define TYPE_ARTIFICIAL(NODE) (TYPE_CHECK (NODE)->base.nowarning_flag)
837#define TYPE_INDIVISIBLE_P(NODE) (TYPE_CHECK (NODE)->type_common.indivisible_p)
842#define TYPE_NO_NAMED_ARGS_STDARG_P(NODE) \
843 (FUNC_OR_METHOD_CHECK (NODE)->type_common.no_named_args_stdarg_p)
847#define TYPE_INCLUDES_FLEXARRAY(NODE) \
848 (RECORD_OR_UNION_CHECK (NODE)->type_common.no_named_args_stdarg_p)
852#define TREE_SYMBOL_REFERENCED(NODE) \
853 (IDENTIFIER_NODE_CHECK (NODE)->base.static_flag)
857#define TYPE_REF_CAN_ALIAS_ALL(NODE) \
858 (PTR_OR_REF_CHECK (NODE)->base.static_flag)
863#define TREE_OVERFLOW(NODE) (CST_CHECK (NODE)->base.public_flag)
867#define TREE_OVERFLOW_P(EXPR) \
868 (CONSTANT_CLASS_P (EXPR) && TREE_OVERFLOW (EXPR))
875#define TREE_PUBLIC(NODE) ((NODE)->base.public_flag)
879#define TYPE_CACHED_VALUES_P(NODE) (TYPE_CHECK (NODE)->base.public_flag)
883#define SAVE_EXPR_RESOLVED_P(NODE) \
884 (SAVE_EXPR_CHECK (NODE)->base.public_flag)
888#define CALL_EXPR_VA_ARG_PACK(NODE) \
889 (CALL_EXPR_CHECK (NODE)->base.public_flag)
896#define TREE_SIDE_EFFECTS(NODE) \
897 (NON_TYPE_CHECK (NODE)->base.side_effects_flag)
902#define FORCED_LABEL(NODE) (LABEL_DECL_CHECK (NODE)->base.side_effects_flag)
906#define FALLTHROUGH_LABEL_P(NODE) \
907 (LABEL_DECL_CHECK (NODE)->base.private_flag)
911#define SWITCH_BREAK_LABEL_P(NODE) \
912 (LABEL_DECL_CHECK (NODE)->base.protected_flag)
917#define UNUSED_LABEL_P(NODE) \
918 (LABEL_DECL_CHECK (NODE)->base.default_def_flag)
930#define VACUOUS_INIT_LABEL_P(NODE) \
931 (LABEL_DECL_CHECK (NODE)->base.nothrow_flag)
946#define TREE_THIS_VOLATILE(NODE) ((NODE)->base.volatile_flag)
957#define TREE_THIS_NOTRAP(NODE) \
958 (TREE_CHECK5 (NODE, INDIRECT_REF, MEM_REF, TARGET_MEM_REF, ARRAY_REF, \
959 ARRAY_RANGE_REF)->base.nothrow_flag)
965#define TREE_READONLY(NODE) (NON_TYPE_CHECK (NODE)->base.readonly_flag)
969#define TREE_CONSTANT(NODE) (NON_TYPE_CHECK (NODE)->base.constant_flag)
972#define TYPE_SIZES_GIMPLIFIED(NODE) \
973 (TYPE_CHECK (NODE)->base.constant_flag)
976#define DECL_UNSIGNED(NODE) \
977 (DECL_COMMON_CHECK (NODE)->base.u.bits.unsigned_flag)
980#define TYPE_UNSIGNED(NODE) (TYPE_CHECK (NODE)->base.u.bits.unsigned_flag)
983#define TYPE_SIGN(NODE) ((signop) TYPE_UNSIGNED (NODE))
987#define TYPE_OVERFLOW_WRAPS(TYPE) \
988 (POINTER_TYPE_P (TYPE) \
989 ? flag_wrapv_pointer \
990 : (ANY_INTEGRAL_TYPE_CHECK(TYPE)->base.u.bits.unsigned_flag \
995#define TYPE_OVERFLOW_UNDEFINED(TYPE) \
996 (POINTER_TYPE_P (TYPE) \
997 ? !flag_wrapv_pointer \
998 : (!ANY_INTEGRAL_TYPE_CHECK(TYPE)->base.u.bits.unsigned_flag \
999 && !flag_wrapv && !flag_trapv))
1003#define TYPE_OVERFLOW_TRAPS(TYPE) \
1004 (!ANY_INTEGRAL_TYPE_CHECK(TYPE)->base.u.bits.unsigned_flag && flag_trapv)
1007#define TYPE_OVERFLOW_SANITIZED(TYPE) \
1008 (ANY_INTEGRAL_TYPE_P (TYPE) \
1009 && !TYPE_OVERFLOW_WRAPS (TYPE) \
1010 && (flag_sanitize & SANITIZE_SI_OVERFLOW))
1021#define TREE_ASM_WRITTEN(NODE) ((NODE)->base.asm_written_flag)
1028#define TREE_USED(NODE) ((NODE)->base.used_flag)
1034#define TREE_NOTHROW(NODE) ((NODE)->base.nothrow_flag)
1038#define CALL_EXPR_RETURN_SLOT_OPT(NODE) \
1039 (CALL_EXPR_CHECK (NODE)->base.private_flag)
1044#define DECL_BY_REFERENCE(NODE) \
1045 (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \
1046 RESULT_DECL)->decl_common.decl_by_reference_flag)
1050#define DECL_READ_P(NODE) \
1051 (TREE_CHECK2 (NODE, VAR_DECL, PARM_DECL)->decl_common.decl_read_flag)
1055#define DECL_NONSHAREABLE(NODE) \
1056 (TREE_CHECK2 (NODE, VAR_DECL, \
1057 RESULT_DECL)->decl_common.decl_nonshareable_flag)
1061#define DECL_HIDDEN_STRING_LENGTH(NODE) \
1062 (TREE_CHECK (NODE, PARM_DECL)->decl_common.decl_nonshareable_flag)
1067#define CALL_FROM_THUNK_P(NODE) (CALL_EXPR_CHECK (NODE)->base.protected_flag)
1073#define CALL_ALLOCA_FOR_VAR_P(NODE) \
1074 (CALL_EXPR_CHECK (NODE)->base.protected_flag)
1079#define CALL_FROM_NEW_OR_DELETE_P(NODE) \
1080 (CALL_EXPR_CHECK (NODE)->base.protected_flag)
1083#define TREE_PRIVATE(NODE) ((NODE)->base.private_flag)
1085#define TREE_PROTECTED(NODE) ((NODE)->base.protected_flag)
1088#define TYPE_REF_IS_RVALUE(NODE) \
1089 (REFERENCE_TYPE_CHECK (NODE)->base.private_flag)
1093#define TREE_DEPRECATED(NODE) \
1094 ((NODE)->base.deprecated_flag)
1098#define TREE_UNAVAILABLE(NODE) \
1099 ((NODE)->base.u.bits.unavailable_flag)
1103#define IDENTIFIER_ANON_P(NODE) \
1104 (IDENTIFIER_NODE_CHECK (NODE)->base.private_flag)
1108#define IDENTIFIER_INTERNAL_P(NODE) \
1109 (IDENTIFIER_NODE_CHECK (NODE)->base.volatile_flag)
1113#define IDENTIFIER_TRANSPARENT_ALIAS(NODE) \
1114 (IDENTIFIER_NODE_CHECK (NODE)->base.deprecated_flag)
1119#define TYPE_REVERSE_STORAGE_ORDER(NODE) \
1120 (TREE_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, ARRAY_TYPE)->base.u.bits.saturating_flag)
1123#define TYPE_SATURATING(NODE) \
1124 (TREE_NOT_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, ARRAY_TYPE)->base.u.bits.saturating_flag)
1137#define REF_REVERSE_STORAGE_ORDER(NODE) \
1138 (TREE_CHECK2 (NODE, BIT_FIELD_REF, MEM_REF)->base.default_def_flag)
1142#define FUNC_ADDR_BY_DESCRIPTOR(NODE) \
1143 (TREE_CHECK (NODE, ADDR_EXPR)->base.default_def_flag)
1147#define CALL_EXPR_BY_DESCRIPTOR(NODE) \
1148 (TREE_CHECK (NODE, CALL_EXPR)->base.default_def_flag)
1151#define TREE_LANG_FLAG_0(NODE) \
1152 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_0)
1153#define TREE_LANG_FLAG_1(NODE) \
1154 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_1)
1155#define TREE_LANG_FLAG_2(NODE) \
1156 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_2)
1157#define TREE_LANG_FLAG_3(NODE) \
1158 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_3)
1159#define TREE_LANG_FLAG_4(NODE) \
1160 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_4)
1161#define TREE_LANG_FLAG_5(NODE) \
1162 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_5)
1163#define TREE_LANG_FLAG_6(NODE) \
1164 (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_6)
1168#define TREE_INT_CST_NUNITS(NODE) \
1169 (INTEGER_CST_CHECK (NODE)->base.u.int_length.unextended)
1170#define TREE_INT_CST_EXT_NUNITS(NODE) \
1171 (INTEGER_CST_CHECK (NODE)->base.u.int_length.extended)
1172#define TREE_INT_CST_ELT(NODE, I) TREE_INT_CST_ELT_CHECK (NODE, I)
1173#define TREE_INT_CST_LOW(NODE) \
1174 ((unsigned HOST_WIDE_INT) TREE_INT_CST_ELT (NODE, 0))
1178#define POLY_INT_CST_P(NODE) \
1179 (NUM_POLY_INT_COEFFS > 1 && TREE_CODE (NODE) == POLY_INT_CST)
1182#define POLY_INT_CST_COEFF(NODE, I) \
1183 (POLY_INT_CST_CHECK (NODE)->poly_int_cst.coeffs[I])
1185#define TREE_REAL_CST_PTR(NODE) (&REAL_CST_CHECK (NODE)->real_cst.value)
1186#define TREE_REAL_CST(NODE) (*TREE_REAL_CST_PTR (NODE))
1188#define TREE_FIXED_CST_PTR(NODE) \
1189 (FIXED_CST_CHECK (NODE)->fixed_cst.fixed_cst_ptr)
1190#define TREE_FIXED_CST(NODE) (*TREE_FIXED_CST_PTR (NODE))
1194#define TREE_STRING_LENGTH(NODE) (STRING_CST_CHECK (NODE)->string.length)
1195#define TREE_STRING_POINTER(NODE) \
1196 ((const char *)(STRING_CST_CHECK (NODE)->string.str))
1199#define RAW_DATA_LENGTH(NODE) \
1200 (RAW_DATA_CST_CHECK (NODE)->raw_data_cst.length)
1201#define RAW_DATA_POINTER(NODE) \
1202 (RAW_DATA_CST_CHECK (NODE)->raw_data_cst.str)
1203#define RAW_DATA_OWNER(NODE) \
1204 (RAW_DATA_CST_CHECK (NODE)->raw_data_cst.owner)
1205#define RAW_DATA_UCHAR_ELT(NODE, I) \
1206 (((const unsigned char *) RAW_DATA_POINTER (NODE))[I])
1207#define RAW_DATA_SCHAR_ELT(NODE, I) \
1208 (((const signed char *) RAW_DATA_POINTER (NODE))[I])
1211#define TREE_REALPART(NODE) (COMPLEX_CST_CHECK (NODE)->complex.real)
1212#define TREE_IMAGPART(NODE) (COMPLEX_CST_CHECK (NODE)->complex.imag)
1215#define VECTOR_CST_NELTS(NODE) (TYPE_VECTOR_SUBPARTS (TREE_TYPE (NODE)))
1216#define VECTOR_CST_ELT(NODE,IDX) vector_cst_elt (NODE, IDX)
1218#define VECTOR_CST_LOG2_NPATTERNS(NODE) \
1219 (VECTOR_CST_CHECK (NODE)->base.u.vector_cst.log2_npatterns)
1220#define VECTOR_CST_NPATTERNS(NODE) \
1221 (1U << VECTOR_CST_LOG2_NPATTERNS (NODE))
1222#define VECTOR_CST_NELTS_PER_PATTERN(NODE) \
1223 (VECTOR_CST_CHECK (NODE)->base.u.vector_cst.nelts_per_pattern)
1224#define VECTOR_CST_DUPLICATE_P(NODE) \
1225 (VECTOR_CST_NELTS_PER_PATTERN (NODE) == 1)
1226#define VECTOR_CST_STEPPED_P(NODE) \
1227 (VECTOR_CST_NELTS_PER_PATTERN (NODE) == 3)
1228#define VECTOR_CST_ENCODED_ELTS(NODE) \
1229 (VECTOR_CST_CHECK (NODE)->vector.elts)
1230#define VECTOR_CST_ENCODED_ELT(NODE, ELT) \
1231 (VECTOR_CST_CHECK (NODE)->vector.elts[ELT])
1236#define IDENTIFIER_LENGTH(NODE) \
1237 (IDENTIFIER_NODE_CHECK (NODE)->identifier.id.len)
1238#define IDENTIFIER_POINTER(NODE) \
1239 ((const char *) IDENTIFIER_NODE_CHECK (NODE)->identifier.id.str)
1240#define IDENTIFIER_HASH_VALUE(NODE) \
1241 (IDENTIFIER_NODE_CHECK (NODE)->identifier.id.hash_value)
1246#define HT_IDENT_TO_GCC_IDENT(NODE) \
1247 ((tree) ((char *) (NODE) - sizeof (struct tree_common)))
1248#define GCC_IDENT_TO_HT_IDENT(NODE) (&((struct tree_identifier *) (NODE))->id)
1251#define TREE_PURPOSE(NODE) (TREE_LIST_CHECK (NODE)->list.purpose)
1252#define TREE_VALUE(NODE) (TREE_LIST_CHECK (NODE)->list.value)
1258#define ATTR_UNIQUE_VALUE_P(NODE) (TREE_LIST_CHECK (NODE)->base.protected_flag)
1261#define TREE_VEC_LENGTH(NODE) (TREE_VEC_CHECK (NODE)->base.u.length)
1262#define TREE_VEC_BEGIN(NODE) (&TREE_VEC_CHECK (NODE)->vec.a[0])
1263#define TREE_VEC_END(NODE) \
1264 ((void) TREE_VEC_CHECK (NODE), &((NODE)->vec.a[(NODE)->base.u.length]))
1266#define TREE_VEC_ELT(NODE,I) TREE_VEC_ELT_CHECK (NODE, I)
1269#define CONSTRUCTOR_ELTS(NODE) (CONSTRUCTOR_CHECK (NODE)->constructor.elts)
1270#define CONSTRUCTOR_ELT(NODE,IDX) \
1271 (&(*CONSTRUCTOR_ELTS (NODE))[IDX])
1272#define CONSTRUCTOR_NELTS(NODE) \
1273 (vec_safe_length (CONSTRUCTOR_ELTS (NODE)))
1274#define CONSTRUCTOR_NO_CLEARING(NODE) \
1275 (CONSTRUCTOR_CHECK (NODE)->base.public_flag)
1277#define CONSTRUCTOR_ZERO_PADDING_BITS(NODE) \
1278 (CONSTRUCTOR_CHECK (NODE)->base.default_def_flag)
1283#define FOR_EACH_CONSTRUCTOR_VALUE(V, IX, VAL) \
1284 for (IX = 0; (IX >= vec_safe_length (V)) \
1286 : ((VAL = (*(V))[IX].value), \
1293#define FOR_EACH_CONSTRUCTOR_ELT(V, IX, INDEX, VAL) \
1294 for (IX = 0; (IX >= vec_safe_length (V)) \
1296 : (((void) (VAL = (*V)[IX].value)), \
1297 (INDEX = (*V)[IX].index), \
1302#define CONSTRUCTOR_APPEND_ELT(V, INDEX, VALUE) \
1304 constructor_elt _ce___ = {INDEX, VALUE}; \
1305 vec_safe_push ((V), _ce___); \
1310#define CONSTRUCTOR_BITFIELD_P(NODE) \
1311 (DECL_BIT_FIELD (FIELD_DECL_CHECK (NODE)) \
1312 && (DECL_MODE (NODE) != BLKmode \
1313 || TREE_CODE (TREE_TYPE (NODE)) == BITINT_TYPE))
1320#define TREE_CLOBBER_P(NODE) \
1321 (TREE_CODE (NODE) == CONSTRUCTOR && TREE_THIS_VOLATILE (NODE))
1324#define CLOBBER_KIND(NODE) \
1325 (CONSTRUCTOR_CHECK (NODE)->base.u.bits.address_space)
1330#define IS_EMPTY_STMT(NODE) (TREE_CODE (NODE) == NOP_EXPR \
1331 && VOID_TYPE_P (TREE_TYPE (NODE)) \
1332 && integer_zerop (TREE_OPERAND (NODE, 0)))
1335#define TREE_OPERAND_LENGTH(NODE) tree_operand_length (NODE)
1336#define TREE_OPERAND(NODE, I) TREE_OPERAND_CHECK (NODE, I)
1343#define VL_EXP_OPERAND_LENGTH(NODE) \
1344 ((int)TREE_INT_CST_LOW (VL_EXP_CHECK (NODE)->exp.operands[0]))
1347#define MAY_HAVE_DEBUG_MARKER_STMTS debug_nonbind_markers_p
1350#define MAY_HAVE_DEBUG_BIND_STMTS flag_var_tracking_assignments
1352#define MAY_HAVE_DEBUG_STMTS \
1353 (MAY_HAVE_DEBUG_MARKER_STMTS || MAY_HAVE_DEBUG_BIND_STMTS)
1356#define LOOP_EXPR_BODY(NODE) TREE_OPERAND_CHECK_CODE (NODE, LOOP_EXPR, 0)
1361#define EXPR_LOCATION(NODE) \
1362 (CAN_HAVE_LOCATION_P ((NODE)) ? (NODE)->exp.locus : UNKNOWN_LOCATION)
1363#define SET_EXPR_LOCATION(NODE, LOCUS) EXPR_CHECK ((NODE))->exp.locus = (LOCUS)
1364#define EXPR_HAS_LOCATION(NODE) (LOCATION_LOCUS (EXPR_LOCATION (NODE)) \
1365 != UNKNOWN_LOCATION)
1368#define EXPR_LOC_OR_LOC(NODE, LOCUS) (EXPR_HAS_LOCATION (NODE) \
1369 ? (NODE)->exp.locus : (LOCUS))
1370#define EXPR_FILENAME(NODE) LOCATION_FILE (EXPR_CHECK ((NODE))->exp.locus)
1371#define EXPR_LINENO(NODE) LOCATION_LINE (EXPR_CHECK (NODE)->exp.locus)
1373#define CAN_HAVE_RANGE_P(NODE) (CAN_HAVE_LOCATION_P (NODE))
1374#define EXPR_LOCATION_RANGE(NODE) (get_expr_source_range (EXPR_CHECK ((NODE))))
1376#define EXPR_HAS_RANGE(NODE) \
1377 (CAN_HAVE_RANGE_P (NODE) \
1378 ? EXPR_LOCATION_RANGE (NODE).m_start != UNKNOWN_LOCATION \
1383#define CAN_HAVE_LOCATION_P(NODE) ((NODE) && EXPR_P (NODE))
1394ATTRIBUTE_WARN_UNUSED_RESULT
1413#define TARGET_EXPR_SLOT(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 0)
1414#define TARGET_EXPR_INITIAL(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 1)
1415#define TARGET_EXPR_CLEANUP(NODE) TREE_OPERAND_CHECK_CODE (NODE, TARGET_EXPR, 2)
1418#define TARGET_EXPR_NO_ELIDE(NODE) (TARGET_EXPR_CHECK (NODE)->base.private_flag)
1422#define DECL_EXPR_DECL(NODE) TREE_OPERAND (DECL_EXPR_CHECK (NODE), 0)
1424#define EXIT_EXPR_COND(NODE) TREE_OPERAND (EXIT_EXPR_CHECK (NODE), 0)
1427#define COMPOUND_LITERAL_EXPR_DECL_EXPR(NODE) \
1428 TREE_OPERAND (COMPOUND_LITERAL_EXPR_CHECK (NODE), 0)
1429#define COMPOUND_LITERAL_EXPR_DECL(NODE) \
1430 DECL_EXPR_DECL (COMPOUND_LITERAL_EXPR_DECL_EXPR (NODE))
1433#define SWITCH_COND(NODE) TREE_OPERAND (SWITCH_EXPR_CHECK (NODE), 0)
1434#define SWITCH_BODY(NODE) TREE_OPERAND (SWITCH_EXPR_CHECK (NODE), 1)
1438#define SWITCH_ALL_CASES_P(NODE) (SWITCH_EXPR_CHECK (NODE)->base.private_flag)
1442#define CASE_LOW(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 0)
1443#define CASE_HIGH(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 1)
1444#define CASE_LABEL(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 2)
1445#define CASE_CHAIN(NODE) TREE_OPERAND (CASE_LABEL_EXPR_CHECK (NODE), 3)
1449#define TMR_BASE(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 0))
1450#define TMR_OFFSET(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 1))
1451#define TMR_INDEX(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 2))
1452#define TMR_STEP(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 3))
1453#define TMR_INDEX2(NODE) (TREE_OPERAND (TARGET_MEM_REF_CHECK (NODE), 4))
1455#define MR_DEPENDENCE_CLIQUE(NODE) \
1456 (TREE_CHECK2 (NODE, MEM_REF, TARGET_MEM_REF)->base.u.dependence_info.clique)
1457#define MR_DEPENDENCE_BASE(NODE) \
1458 (TREE_CHECK2 (NODE, MEM_REF, TARGET_MEM_REF)->base.u.dependence_info.base)
1461#define BIND_EXPR_VARS(NODE) (TREE_OPERAND (BIND_EXPR_CHECK (NODE), 0))
1462#define BIND_EXPR_BODY(NODE) (TREE_OPERAND (BIND_EXPR_CHECK (NODE), 1))
1463#define BIND_EXPR_BLOCK(NODE) (TREE_OPERAND (BIND_EXPR_CHECK (NODE), 2))
1467#define GOTO_DESTINATION(NODE) TREE_OPERAND (GOTO_EXPR_CHECK (NODE), 0)
1473#define ASM_STRING(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 0)
1474#define ASM_OUTPUTS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 1)
1475#define ASM_INPUTS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 2)
1476#define ASM_CLOBBERS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 3)
1477#define ASM_LABELS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 4)
1481#define ASM_BASIC_P(NODE) (ASM_EXPR_CHECK (NODE)->base.static_flag)
1482#define ASM_VOLATILE_P(NODE) (ASM_EXPR_CHECK (NODE)->base.public_flag)
1485#define ASM_INLINE_P(NODE) (ASM_EXPR_CHECK (NODE)->base.protected_flag)
1488#define COND_EXPR_COND(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 0))
1489#define COND_EXPR_THEN(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 1))
1490#define COND_EXPR_ELSE(NODE) (TREE_OPERAND (COND_EXPR_CHECK (NODE), 2))
1493#define CHREC_LEFT(NODE) TREE_OPERAND (POLYNOMIAL_CHREC_CHECK (NODE), 0)
1494#define CHREC_RIGHT(NODE) TREE_OPERAND (POLYNOMIAL_CHREC_CHECK (NODE), 1)
1495#define CHREC_VARIABLE(NODE) POLYNOMIAL_CHREC_CHECK (NODE)->base.u.chrec_var
1497#define CHREC_NOWRAP(NODE) POLYNOMIAL_CHREC_CHECK (NODE)->base.nothrow_flag
1501#define LABEL_EXPR_LABEL(NODE) TREE_OPERAND (LABEL_EXPR_CHECK (NODE), 0)
1504#define CATCH_TYPES(NODE) TREE_OPERAND (CATCH_EXPR_CHECK (NODE), 0)
1505#define CATCH_BODY(NODE) TREE_OPERAND (CATCH_EXPR_CHECK (NODE), 1)
1508#define EH_FILTER_TYPES(NODE) TREE_OPERAND (EH_FILTER_EXPR_CHECK (NODE), 0)
1509#define EH_FILTER_FAILURE(NODE) TREE_OPERAND (EH_FILTER_EXPR_CHECK (NODE), 1)
1512#define OBJ_TYPE_REF_EXPR(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 0)
1513#define OBJ_TYPE_REF_OBJECT(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 1)
1514#define OBJ_TYPE_REF_TOKEN(NODE) TREE_OPERAND (OBJ_TYPE_REF_CHECK (NODE), 2)
1517#define CALL_EXPR_FN(NODE) TREE_OPERAND (CALL_EXPR_CHECK (NODE), 1)
1518#define CALL_EXPR_STATIC_CHAIN(NODE) TREE_OPERAND (CALL_EXPR_CHECK (NODE), 2)
1519#define CALL_EXPR_ARG(NODE, I) TREE_OPERAND (CALL_EXPR_CHECK (NODE), (I) + 3)
1520#define call_expr_nargs(NODE) (VL_EXP_OPERAND_LENGTH (NODE) - 3)
1521#define CALL_EXPR_IFN(NODE) (CALL_EXPR_CHECK (NODE)->base.u.ifn)
1529#define CALL_EXPR_ARGP(NODE) \
1530 (&(TREE_OPERAND (CALL_EXPR_CHECK (NODE), 0)) + 3)
1533#define TRANSACTION_EXPR_BODY(NODE) \
1534 TREE_OPERAND (TRANSACTION_EXPR_CHECK (NODE), 0)
1535#define TRANSACTION_EXPR_OUTER(NODE) \
1536 (TRANSACTION_EXPR_CHECK (NODE)->base.static_flag)
1537#define TRANSACTION_EXPR_RELAXED(NODE) \
1538 (TRANSACTION_EXPR_CHECK (NODE)->base.public_flag)
1544#define OMP_BODY(NODE) \
1545 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_PARALLEL, OMP_MASTER), 0)
1546#define OMP_CLAUSES(NODE) \
1547 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_PARALLEL, OMP_SCAN), 1)
1550#define OMP_STANDALONE_CLAUSES(NODE) \
1551 TREE_OPERAND (TREE_RANGE_CHECK (NODE, OACC_CACHE, OMP_TARGET_EXIT_DATA), 0)
1553#define OACC_DATA_BODY(NODE) \
1554 TREE_OPERAND (OACC_DATA_CHECK (NODE), 0)
1555#define OACC_DATA_CLAUSES(NODE) \
1556 TREE_OPERAND (OACC_DATA_CHECK (NODE), 1)
1558#define OACC_HOST_DATA_BODY(NODE) \
1559 TREE_OPERAND (OACC_HOST_DATA_CHECK (NODE), 0)
1560#define OACC_HOST_DATA_CLAUSES(NODE) \
1561 TREE_OPERAND (OACC_HOST_DATA_CHECK (NODE), 1)
1563#define OACC_CACHE_CLAUSES(NODE) \
1564 TREE_OPERAND (OACC_CACHE_CHECK (NODE), 0)
1566#define OACC_DECLARE_CLAUSES(NODE) \
1567 TREE_OPERAND (OACC_DECLARE_CHECK (NODE), 0)
1569#define OACC_ENTER_DATA_CLAUSES(NODE) \
1570 TREE_OPERAND (OACC_ENTER_DATA_CHECK (NODE), 0)
1572#define OACC_EXIT_DATA_CLAUSES(NODE) \
1573 TREE_OPERAND (OACC_EXIT_DATA_CHECK (NODE), 0)
1575#define OACC_UPDATE_CLAUSES(NODE) \
1576 TREE_OPERAND (OACC_UPDATE_CHECK (NODE), 0)
1578#define OMP_PARALLEL_BODY(NODE) TREE_OPERAND (OMP_PARALLEL_CHECK (NODE), 0)
1579#define OMP_PARALLEL_CLAUSES(NODE) TREE_OPERAND (OMP_PARALLEL_CHECK (NODE), 1)
1581#define OMP_TASK_BODY(NODE) TREE_OPERAND (OMP_TASK_CHECK (NODE), 0)
1582#define OMP_TASK_CLAUSES(NODE) TREE_OPERAND (OMP_TASK_CHECK (NODE), 1)
1584#define OMP_TASKREG_CHECK(NODE) TREE_RANGE_CHECK (NODE, OMP_PARALLEL, OMP_TASK)
1585#define OMP_TASKREG_BODY(NODE) TREE_OPERAND (OMP_TASKREG_CHECK (NODE), 0)
1586#define OMP_TASKREG_CLAUSES(NODE) TREE_OPERAND (OMP_TASKREG_CHECK (NODE), 1)
1588#define OMP_LOOPING_CHECK(NODE) TREE_RANGE_CHECK (NODE, OMP_FOR, OACC_LOOP)
1589#define OMP_FOR_BODY(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 0)
1590#define OMP_FOR_CLAUSES(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 1)
1591#define OMP_FOR_INIT(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 2)
1592#define OMP_FOR_COND(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 3)
1593#define OMP_FOR_INCR(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 4)
1594#define OMP_FOR_PRE_BODY(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 5)
1595#define OMP_FOR_ORIG_DECLS(NODE) TREE_OPERAND (OMP_LOOPING_CHECK (NODE), 6)
1597#define OMP_INTEROP_CLAUSES(NODE)\
1598 TREE_OPERAND (OMP_INTEROP_CHECK (NODE), 0)
1600#define OMP_LOOPXFORM_CHECK(NODE) TREE_RANGE_CHECK (NODE, OMP_TILE, OMP_UNROLL)
1601#define OMP_LOOPXFORM_LOWERED(NODE) \
1602 (OMP_LOOPXFORM_CHECK (NODE)->base.public_flag)
1604#define OMP_SECTIONS_BODY(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 0)
1605#define OMP_SECTIONS_CLAUSES(NODE) TREE_OPERAND (OMP_SECTIONS_CHECK (NODE), 1)
1607#define OMP_SECTION_BODY(NODE) TREE_OPERAND (OMP_SECTION_CHECK (NODE), 0)
1609#define OMP_STRUCTURED_BLOCK_BODY(NODE) \
1610 TREE_OPERAND (OMP_STRUCTURED_BLOCK_CHECK (NODE), 0)
1612#define OMP_SINGLE_BODY(NODE) TREE_OPERAND (OMP_SINGLE_CHECK (NODE), 0)
1613#define OMP_SINGLE_CLAUSES(NODE) TREE_OPERAND (OMP_SINGLE_CHECK (NODE), 1)
1615#define OMP_SCOPE_BODY(NODE) TREE_OPERAND (OMP_SCOPE_CHECK (NODE), 0)
1616#define OMP_SCOPE_CLAUSES(NODE) TREE_OPERAND (OMP_SCOPE_CHECK (NODE), 1)
1618#define OMP_MASTER_BODY(NODE) TREE_OPERAND (OMP_MASTER_CHECK (NODE), 0)
1620#define OMP_MASKED_BODY(NODE) TREE_OPERAND (OMP_MASKED_CHECK (NODE), 0)
1621#define OMP_MASKED_CLAUSES(NODE) TREE_OPERAND (OMP_MASKED_CHECK (NODE), 1)
1623#define OMP_TASKGROUP_BODY(NODE) TREE_OPERAND (OMP_TASKGROUP_CHECK (NODE), 0)
1624#define OMP_TASKGROUP_CLAUSES(NODE) \
1625 TREE_OPERAND (OMP_TASKGROUP_CHECK (NODE), 1)
1627#define OMP_ORDERED_BODY(NODE) TREE_OPERAND (OMP_ORDERED_CHECK (NODE), 0)
1628#define OMP_ORDERED_CLAUSES(NODE) TREE_OPERAND (OMP_ORDERED_CHECK (NODE), 1)
1630#define OMP_CRITICAL_BODY(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 0)
1631#define OMP_CRITICAL_CLAUSES(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 1)
1632#define OMP_CRITICAL_NAME(NODE) TREE_OPERAND (OMP_CRITICAL_CHECK (NODE), 2)
1634#define OMP_TEAMS_BODY(NODE) TREE_OPERAND (OMP_TEAMS_CHECK (NODE), 0)
1635#define OMP_TEAMS_CLAUSES(NODE) TREE_OPERAND (OMP_TEAMS_CHECK (NODE), 1)
1637#define OMP_TARGET_DATA_BODY(NODE) \
1638 TREE_OPERAND (OMP_TARGET_DATA_CHECK (NODE), 0)
1639#define OMP_TARGET_DATA_CLAUSES(NODE)\
1640 TREE_OPERAND (OMP_TARGET_DATA_CHECK (NODE), 1)
1642#define OMP_TARGET_BODY(NODE) TREE_OPERAND (OMP_TARGET_CHECK (NODE), 0)
1643#define OMP_TARGET_CLAUSES(NODE) TREE_OPERAND (OMP_TARGET_CHECK (NODE), 1)
1645#define OMP_TARGET_UPDATE_CLAUSES(NODE)\
1646 TREE_OPERAND (OMP_TARGET_UPDATE_CHECK (NODE), 0)
1648#define OMP_TARGET_ENTER_DATA_CLAUSES(NODE)\
1649 TREE_OPERAND (OMP_TARGET_ENTER_DATA_CHECK (NODE), 0)
1651#define OMP_TARGET_EXIT_DATA_CLAUSES(NODE)\
1652 TREE_OPERAND (OMP_TARGET_EXIT_DATA_CHECK (NODE), 0)
1654#define OMP_METADIRECTIVE_VARIANTS(NODE) \
1655 TREE_OPERAND (OMP_METADIRECTIVE_CHECK (NODE), 0)
1657#define OMP_METADIRECTIVE_VARIANT_SELECTOR(v) \
1659#define OMP_METADIRECTIVE_VARIANT_DIRECTIVE(v) \
1660 TREE_PURPOSE (TREE_VALUE (v))
1661#define OMP_METADIRECTIVE_VARIANT_BODY(v) \
1662 TREE_VALUE (TREE_VALUE (v))
1664#define OMP_DECLARE_MAPPER_ID(NODE) \
1665 TREE_OPERAND (OMP_DECLARE_MAPPER_CHECK (NODE), 0)
1666#define OMP_DECLARE_MAPPER_DECL(NODE) \
1667 TREE_OPERAND (OMP_DECLARE_MAPPER_CHECK (NODE), 1)
1668#define OMP_DECLARE_MAPPER_CLAUSES(NODE) \
1669 TREE_OPERAND (OMP_DECLARE_MAPPER_CHECK (NODE), 2)
1671#define OMP_SCAN_BODY(NODE) TREE_OPERAND (OMP_SCAN_CHECK (NODE), 0)
1672#define OMP_SCAN_CLAUSES(NODE) TREE_OPERAND (OMP_SCAN_CHECK (NODE), 1)
1674#define OMP_DISPATCH_BODY(NODE) TREE_OPERAND (OMP_DISPATCH_CHECK (NODE), 0)
1675#define OMP_DISPATCH_CLAUSES(NODE) TREE_OPERAND (OMP_DISPATCH_CHECK (NODE), 1)
1677#define OMP_CLAUSE_SIZE(NODE) \
1678 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \
1680 OMP_CLAUSE__CACHE_), 1)
1682#define OMP_CLAUSE_CHAIN(NODE) TREE_CHAIN (OMP_CLAUSE_CHECK (NODE))
1683#define OMP_CLAUSE_DECL(NODE) \
1684 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \
1685 OMP_CLAUSE_PRIVATE, \
1686 OMP_CLAUSE__SCANTEMP_), 0)
1687#define OMP_CLAUSE_HAS_LOCATION(NODE) \
1688 (LOCATION_LOCUS ((OMP_CLAUSE_CHECK (NODE))->omp_clause.locus) \
1689 != UNKNOWN_LOCATION)
1690#define OMP_CLAUSE_LOCATION(NODE) (OMP_CLAUSE_CHECK (NODE))->omp_clause.locus
1692#define OMP_CLAUSE_HAS_ITERATORS(NODE) \
1693 ((OMP_CLAUSE_CODE (NODE) == OMP_CLAUSE_FROM \
1694 || OMP_CLAUSE_CODE (NODE) == OMP_CLAUSE_TO \
1695 || OMP_CLAUSE_CODE (NODE) == OMP_CLAUSE_MAP) \
1696 && OMP_CLAUSE_ITERATORS (NODE))
1697#define OMP_CLAUSE_ITERATORS(NODE) \
1698 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \
1707#define OMP_ITERATOR_VAR(NODE) TREE_VEC_ELT (NODE, 0)
1708#define OMP_ITERATOR_BEGIN(NODE) TREE_VEC_ELT (NODE, 1)
1709#define OMP_ITERATOR_END(NODE) TREE_VEC_ELT (NODE, 2)
1710#define OMP_ITERATOR_STEP(NODE) TREE_VEC_ELT (NODE, 3)
1711#define OMP_ITERATOR_ORIG_STEP(NODE) TREE_VEC_ELT (NODE, 4)
1712#define OMP_ITERATOR_BLOCK(NODE) TREE_VEC_ELT (NODE, 5)
1713#define OMP_ITERATOR_LABEL(NODE) TREE_VEC_ELT (NODE, 6)
1714#define OMP_ITERATOR_INDEX(NODE) TREE_VEC_ELT (NODE, 7)
1715#define OMP_ITERATOR_ELEMS(NODE) TREE_VEC_ELT (NODE, 8)
1716#define OMP_ITERATOR_COUNT(NODE) TREE_VEC_ELT (NODE, 9)
1718#define OMP_ITERATOR_EXPANDED_P(NODE) (TREE_VEC_LENGTH (NODE) > 6)
1722#define OMP_FOR_NON_RECTANGULAR(NODE) \
1723 (OMP_LOOPING_CHECK (NODE)->base.private_flag)
1727#define OMP_SECTION_LAST(NODE) \
1728 (OMP_SECTION_CHECK (NODE)->base.private_flag)
1732#define OMP_PARALLEL_COMBINED(NODE) \
1733 (OMP_PARALLEL_CHECK (NODE)->base.private_flag)
1737#define OMP_TEAMS_COMBINED(NODE) \
1738 (OMP_TEAMS_CHECK (NODE)->base.private_flag)
1742#define OMP_TARGET_COMBINED(NODE) \
1743 (OMP_TARGET_CHECK (NODE)->base.private_flag)
1747#define OMP_MASTER_COMBINED(NODE) \
1748 (OMP_MASTER_CHECK (NODE)->base.private_flag)
1752#define OMP_MASKED_COMBINED(NODE) \
1753 (OMP_MASKED_CHECK (NODE)->base.private_flag)
1756#define OMP_ATOMIC_MEMORY_ORDER(NODE) \
1757 (TREE_RANGE_CHECK (NODE, OMP_ATOMIC, \
1758 OMP_ATOMIC_CAPTURE_NEW)->base.u.omp_atomic_memory_order)
1761#define OMP_ATOMIC_WEAK(NODE) \
1762 (TREE_RANGE_CHECK (NODE, OMP_ATOMIC, \
1763 OMP_ATOMIC_CAPTURE_NEW)->base.public_flag)
1768#define OMP_CLAUSE_PRIVATE_DEBUG(NODE) \
1769 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE)->base.public_flag)
1773#define OMP_CLAUSE_PRIVATE_OUTER_REF(NODE) \
1774 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE))
1779#define OMP_CLAUSE_PRIVATE_TASKLOOP_IV(NODE) \
1780 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIVATE))
1783#define OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT(NODE) \
1784 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE)->base.public_flag)
1788#define OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE(NODE) \
1789 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE))
1793#define OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET(NODE) \
1794 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FIRSTPRIVATE))
1798#define OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE(NODE) \
1799 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE)->base.public_flag)
1800#define OMP_CLAUSE_LASTPRIVATE_STMT(NODE) \
1801 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
1802 OMP_CLAUSE_LASTPRIVATE),\
1804#define OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ(NODE) \
1805 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
1811#define OMP_CLAUSE_LASTPRIVATE_LOOP_IV(NODE) \
1812 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE))
1815#define OMP_CLAUSE_LASTPRIVATE_CONDITIONAL(NODE) \
1816 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LASTPRIVATE))
1821#define OMP_CLAUSE_SHARED_FIRSTPRIVATE(NODE) \
1822 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SHARED)->base.public_flag)
1826#define OMP_CLAUSE_SHARED_READONLY(NODE) \
1827 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SHARED))
1829#define OMP_CLAUSE_IF_MODIFIER(NODE) \
1830 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_IF)->omp_clause.subcode.if_modifier)
1832#define OMP_CLAUSE_FINAL_EXPR(NODE) \
1833 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FINAL), 0)
1834#define OMP_CLAUSE_IF_EXPR(NODE) \
1835 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_IF), 0)
1836#define OMP_CLAUSE_SELF_EXPR(NODE) \
1837 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SELF), 0)
1838#define OMP_CLAUSE_NUM_THREADS_EXPR(NODE) \
1839 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_THREADS),0)
1840#define OMP_CLAUSE_SCHEDULE_CHUNK_EXPR(NODE) \
1841 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE), 0)
1842#define OMP_CLAUSE_NUM_TASKS_EXPR(NODE) \
1843 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TASKS), 0)
1844#define OMP_CLAUSE_HINT_EXPR(NODE) \
1845 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_HINT), 0)
1846#define OMP_CLAUSE_FILTER_EXPR(NODE) \
1847 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_FILTER), 0)
1848#define OMP_CLAUSE_PARTIAL_EXPR(NODE) \
1849 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PARTIAL), 0)
1850#define OMP_CLAUSE_SIZES_LIST(NODE) \
1851 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SIZES), 0)
1852#define OMP_CLAUSE_NOVARIANTS_EXPR(NODE) \
1853 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NOVARIANTS), 0)
1854#define OMP_CLAUSE_NOCONTEXT_EXPR(NODE) \
1855 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NOCONTEXT), 0)
1857#define OMP_CLAUSE_GRAINSIZE_EXPR(NODE) \
1858 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GRAINSIZE),0)
1860#define OMP_CLAUSE_PRIORITY_EXPR(NODE) \
1861 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PRIORITY),0)
1863#define OMP_CLAUSE_GRAINSIZE_STRICT(NODE) \
1864 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GRAINSIZE))
1865#define OMP_CLAUSE_NUM_TASKS_STRICT(NODE) \
1866 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TASKS))
1867#define OMP_CLAUSE_NUM_THREADS_STRICT(NODE) \
1868 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_THREADS))
1869#define OMP_CLAUSE_THREAD_LIMIT_STRICT(NODE) \
1870 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_THREAD_LIMIT))
1871#define OMP_CLAUSE_NUM_TEAMS_DIMS(NODE) \
1872 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TEAMS))
1873#define OMP_CLAUSE_NUM_THREADS_DIMS(NODE) \
1874 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_THREADS))
1875#define OMP_CLAUSE_THREAD_LIMIT_DIMS(NODE) \
1876 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_THREAD_LIMIT))
1879#define OMP_CLAUSE_EXPR(NODE, CLAUSE) \
1880 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, CLAUSE), 0)
1881#define OMP_CLAUSE_GANG_EXPR(NODE) \
1882 OMP_CLAUSE_OPERAND ( \
1883 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GANG), 0)
1884#define OMP_CLAUSE_GANG_STATIC_EXPR(NODE) \
1885 OMP_CLAUSE_OPERAND ( \
1886 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_GANG), 1)
1887#define OMP_CLAUSE_ASYNC_EXPR(NODE) \
1888 OMP_CLAUSE_OPERAND ( \
1889 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ASYNC), 0)
1890#define OMP_CLAUSE_WAIT_EXPR(NODE) \
1891 OMP_CLAUSE_OPERAND ( \
1892 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_WAIT), 0)
1893#define OMP_CLAUSE_VECTOR_EXPR(NODE) \
1894 OMP_CLAUSE_OPERAND ( \
1895 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_VECTOR), 0)
1896#define OMP_CLAUSE_WORKER_EXPR(NODE) \
1897 OMP_CLAUSE_OPERAND ( \
1898 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_WORKER), 0)
1899#define OMP_CLAUSE_NUM_GANGS_EXPR(NODE) \
1900 OMP_CLAUSE_OPERAND ( \
1901 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_GANGS), 0)
1902#define OMP_CLAUSE_NUM_WORKERS_EXPR(NODE) \
1903 OMP_CLAUSE_OPERAND ( \
1904 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_WORKERS), 0)
1905#define OMP_CLAUSE_VECTOR_LENGTH_EXPR(NODE) \
1906 OMP_CLAUSE_OPERAND ( \
1907 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_VECTOR_LENGTH), 0)
1909#define OMP_CLAUSE_DEPEND_KIND(NODE) \
1910 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEPEND)->omp_clause.subcode.depend_kind)
1912#define OMP_CLAUSE_DOACROSS_KIND(NODE) \
1913 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DOACROSS)->omp_clause.subcode.doacross_kind)
1915#define OMP_CLAUSE_DOACROSS_SINK_NEGATIVE(NODE) \
1916 TREE_PUBLIC (TREE_LIST_CHECK (NODE))
1919#define OMP_CLAUSE_DOACROSS_DEPEND(NODE) \
1920 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DOACROSS))
1924#define OMP_CLAUSE_MESSAGE_EXPR(NODE) \
1925 OMP_CLAUSE_OPERAND ( \
1926 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MESSAGE), 0)
1927#define OMP_CLAUSE_MESSAGE_LEN(NODE) \
1928 OMP_CLAUSE_OPERAND ( \
1929 OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MESSAGE), 1)
1930#define OMP_CLAUSE_MESSAGE_SEVERITY_WARN(NODE) \
1931 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MESSAGE)->base.public_flag)
1933#define OMP_CLAUSE_MAP_KIND(NODE) \
1934 ((enum gomp_map_kind) OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->omp_clause.subcode.map_kind)
1935#define OMP_CLAUSE_SET_MAP_KIND(NODE, MAP_KIND) \
1936 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->omp_clause.subcode.map_kind \
1937 = (unsigned int) (MAP_KIND))
1939#define OMP_CLAUSE_MOTION_PRESENT(NODE) \
1940 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_FROM, OMP_CLAUSE_TO)->base.deprecated_flag)
1942#define OMP_CLAUSE_INIT_TARGET(NODE) \
1943 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_INIT)->base.public_flag)
1944#define OMP_CLAUSE_INIT_TARGETSYNC(NODE) \
1945 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_INIT)->base.deprecated_flag)
1946#define OMP_CLAUSE_INIT_PREFER_TYPE(NODE) \
1947 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \
1949 OMP_CLAUSE_INIT), 1)
1954#define OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION(NODE) \
1955 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.public_flag)
1958#define OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION(NODE) \
1959 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1963#define OMP_CLAUSE_MAP_IN_REDUCTION(NODE) \
1964 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1968#define OMP_CLAUSE_MAP_IMPLICIT(NODE) \
1969 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.default_def_flag)
1973#define OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P(NODE) \
1974 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.deprecated_flag)
1977#define OMP_CLAUSE_ATTACHMENT_MAPPING_ERASED(NODE) \
1978 TREE_STATIC (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1981#define OMP_CLAUSE_RELEASE_DESCRIPTOR(NODE) \
1982 TREE_NOTHROW (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1986#define OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE(NODE) \
1987 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP)->base.addressable_flag)
1990#define OMP_CLAUSE_MAP_READONLY(NODE) \
1991 TREE_READONLY (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
1995#define OMP_CLAUSE_MAP_SIZE_NEEDS_ADJUSTMENT(NODE) \
1996 TREE_CONSTANT (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
2000#define OMP_CLAUSE_MAP_GIMPLE_ONLY(NODE) \
2001 TREE_USED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_MAP))
2004#define OMP_CLAUSE__CACHE__READONLY(NODE) \
2005 TREE_READONLY (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__CACHE_))
2009#define OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT(NODE) \
2010 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_USE_DEVICE_PTR)->base.public_flag)
2012#define OMP_CLAUSE_PROC_BIND_KIND(NODE) \
2013 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_PROC_BIND)->omp_clause.subcode.proc_bind_kind)
2015#define OMP_CLAUSE_DEVICE_TYPE_KIND(NODE) \
2016 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE_TYPE)->omp_clause.subcode.device_type_kind)
2018#define OMP_CLAUSE_INDIRECT_EXPR(NODE) \
2019 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_INDIRECT), 0)
2023#define OMP_CLAUSE_DEVICE_ANCESTOR(NODE) \
2024 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE)->base.public_flag)
2026#define OMP_CLAUSE_COLLAPSE_EXPR(NODE) \
2027 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 0)
2028#define OMP_CLAUSE_COLLAPSE_ITERVAR(NODE) \
2029 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 1)
2030#define OMP_CLAUSE_COLLAPSE_COUNT(NODE) \
2031 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_COLLAPSE), 2)
2033#define OMP_CLAUSE_ORDERED_EXPR(NODE) \
2034 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDERED), 0)
2038#define OMP_CLAUSE_ORDERED_DOACROSS(NODE) \
2039 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDERED)->base.public_flag)
2042#define OMP_CLAUSE_ORDER_UNCONSTRAINED(NODE) \
2043 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDER)->base.public_flag)
2045#define OMP_CLAUSE_ORDER_REPRODUCIBLE(NODE) \
2046 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ORDER))
2048#define OMP_CLAUSE_REDUCTION_CODE(NODE) \
2049 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
2050 OMP_CLAUSE_IN_REDUCTION)->omp_clause.subcode.reduction_code)
2051#define OMP_CLAUSE_REDUCTION_INIT(NODE) \
2052 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
2053 OMP_CLAUSE_IN_REDUCTION), 1)
2054#define OMP_CLAUSE_REDUCTION_MERGE(NODE) \
2055 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
2056 OMP_CLAUSE_IN_REDUCTION), 2)
2057#define OMP_CLAUSE_REDUCTION_GIMPLE_INIT(NODE) \
2058 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
2059#define OMP_CLAUSE_REDUCTION_GIMPLE_MERGE(NODE) \
2060 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_merge
2061#define OMP_CLAUSE_REDUCTION_PLACEHOLDER(NODE) \
2062 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
2063 OMP_CLAUSE_IN_REDUCTION), 3)
2064#define OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER(NODE) \
2065 OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
2066 OMP_CLAUSE_IN_REDUCTION), 4)
2070#define OMP_CLAUSE_REDUCTION_OMP_ORIG_REF(NODE) \
2071 (OMP_CLAUSE_RANGE_CHECK (NODE, OMP_CLAUSE_REDUCTION, \
2072 OMP_CLAUSE_IN_REDUCTION)->base.public_flag)
2075#define OMP_CLAUSE_REDUCTION_TASK(NODE) \
2076 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_REDUCTION))
2079#define OMP_CLAUSE_REDUCTION_INSCAN(NODE) \
2080 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_REDUCTION))
2084#define OMP_CLAUSE_LINEAR_NO_COPYIN(NODE) \
2085 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.public_flag)
2089#define OMP_CLAUSE_LINEAR_NO_COPYOUT(NODE) \
2090 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR))
2093#define OMP_CLAUSE_LINEAR_VARIABLE_STRIDE(NODE) \
2094 TREE_PROTECTED (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR))
2098#define OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER(NODE) \
2099 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.addressable_flag)
2103#define OMP_CLAUSE_LINEAR_ARRAY(NODE) \
2104 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->base.deprecated_flag)
2106#define OMP_CLAUSE_LINEAR_STEP(NODE) \
2107 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR), 1)
2109#define OMP_CLAUSE_LINEAR_STMT(NODE) \
2110 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR), 2)
2112#define OMP_CLAUSE_LINEAR_GIMPLE_SEQ(NODE) \
2113 (OMP_CLAUSE_CHECK (NODE))->omp_clause.gimple_reduction_init
2115#define OMP_CLAUSE_LINEAR_KIND(NODE) \
2116 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_LINEAR)->omp_clause.subcode.linear_kind)
2118#define OMP_CLAUSE_ALIGNED_ALIGNMENT(NODE) \
2119 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALIGNED), 1)
2121#define OMP_CLAUSE_ALLOCATE_ALLOCATOR(NODE) \
2122 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALLOCATE), 1)
2124#define OMP_CLAUSE_ALLOCATE_ALIGN(NODE) \
2125 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALLOCATE), 2)
2131#define OMP_CLAUSE_ALLOCATE_COMBINED(NODE) \
2132 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ALLOCATE)->base.public_flag)
2134#define OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR(NODE) \
2135 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_USES_ALLOCATORS), 0)
2137#define OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE(NODE) \
2138 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_USES_ALLOCATORS), 1)
2140#define OMP_CLAUSE_USES_ALLOCATORS_TRAITS(NODE) \
2141 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_USES_ALLOCATORS), 2)
2143#define OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR(NODE) \
2144 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TEAMS), 0)
2146#define OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR(NODE) \
2147 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_NUM_TEAMS), 1)
2149#define OMP_CLAUSE_THREAD_LIMIT_EXPR(NODE) \
2150 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
2151 OMP_CLAUSE_THREAD_LIMIT), 0)
2153#define OMP_CLAUSE_DEVICE_ID(NODE) \
2154 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEVICE), 0)
2156#define OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR(NODE) \
2157 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
2158 OMP_CLAUSE_DIST_SCHEDULE), 0)
2160#define OMP_CLAUSE_SAFELEN_EXPR(NODE) \
2161 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SAFELEN), 0)
2163#define OMP_CLAUSE_SIMDLEN_EXPR(NODE) \
2164 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SIMDLEN), 0)
2166#define OMP_CLAUSE_SIMDLEN_TYPE(NODE) \
2167 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SIMDLEN), 1)
2169#define OMP_CLAUSE_SIMDLEN_DIVISOR(NODE) \
2170 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SIMDLEN), 2)
2172#define OMP_CLAUSE__SIMDUID__DECL(NODE) \
2173 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SIMDUID_), 0)
2175#define OMP_CLAUSE_SCHEDULE_KIND(NODE) \
2176 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE)->omp_clause.subcode.schedule_kind)
2179#define OMP_CLAUSE_SCHEDULE_SIMD(NODE) \
2180 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_SCHEDULE)->base.public_flag)
2182#define OMP_CLAUSE_DEFAULT_KIND(NODE) \
2183 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEFAULT)->omp_clause.subcode.default_kind)
2185#define OMP_CLAUSE_DEFAULTMAP_KIND(NODE) \
2186 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEFAULTMAP)->omp_clause.subcode.defaultmap_kind)
2187#define OMP_CLAUSE_DEFAULTMAP_CATEGORY(NODE) \
2188 ((enum omp_clause_defaultmap_kind) \
2189 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) & OMP_CLAUSE_DEFAULTMAP_CATEGORY_MASK))
2190#define OMP_CLAUSE_DEFAULTMAP_BEHAVIOR(NODE) \
2191 ((enum omp_clause_defaultmap_kind) \
2192 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) & OMP_CLAUSE_DEFAULTMAP_MASK))
2193#define OMP_CLAUSE_DEFAULTMAP_SET_KIND(NODE, BEHAVIOR, CATEGORY) \
2194 (OMP_CLAUSE_DEFAULTMAP_KIND (NODE) \
2195 = (enum omp_clause_defaultmap_kind) (CATEGORY | BEHAVIOR))
2197#define OMP_CLAUSE_BIND_KIND(NODE) \
2198 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_BIND)->omp_clause.subcode.bind_kind)
2200#define OMP_CLAUSE_DYN_GROUPPRIVATE_EXPR(NODE) \
2201 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DYN_GROUPPRIVATE), 0)
2202#define OMP_CLAUSE_DYN_GROUPPRIVATE_KIND(NODE) \
2203 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DYN_GROUPPRIVATE)->omp_clause.subcode.fallback_kind)
2206#define OMP_CLAUSE_ENTER_TO(NODE) \
2207 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_ENTER)->base.public_flag)
2209#define OMP_CLAUSE_TILE_LIST(NODE) \
2210 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 0)
2211#define OMP_CLAUSE_TILE_ITERVAR(NODE) \
2212 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 1)
2213#define OMP_CLAUSE_TILE_COUNT(NODE) \
2214 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_TILE), 2)
2217#define OMP_CLAUSE__CONDTEMP__ITER(NODE) \
2218 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__CONDTEMP_)->base.public_flag)
2222#define OMP_CLAUSE__SCANTEMP__ALLOC(NODE) \
2223 (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SCANTEMP_)->base.public_flag)
2228#define OMP_CLAUSE__SCANTEMP__CONTROL(NODE) \
2229 TREE_PRIVATE (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE__SCANTEMP_))
2232#define OMP_NEXT_VARIANT_INDEX(NODE) \
2233 TREE_OPERAND (OMP_NEXT_VARIANT_CHECK (NODE), 0)
2234#define OMP_NEXT_VARIANT_STATE(NODE) \
2235 TREE_OPERAND (OMP_NEXT_VARIANT_CHECK (NODE), 1)
2238#define OMP_TARGET_DEVICE_MATCHES_SELECTOR(NODE) \
2239 TREE_OPERAND (OMP_TARGET_DEVICE_MATCHES_CHECK (NODE), 0)
2240#define OMP_TARGET_DEVICE_MATCHES_PROPERTIES(NODE) \
2241 TREE_OPERAND (OMP_TARGET_DEVICE_MATCHES_CHECK (NODE), 1)
2243#define OMP_CLAUSE__MAPPER_BINDING__ID(NODE) \
2244 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
2245 OMP_CLAUSE__MAPPER_BINDING_), 0)
2247#define OMP_CLAUSE__MAPPER_BINDING__DECL(NODE) \
2248 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
2249 OMP_CLAUSE__MAPPER_BINDING_), 1)
2251#define OMP_CLAUSE__MAPPER_BINDING__MAPPER(NODE) \
2252 OMP_CLAUSE_OPERAND (OMP_CLAUSE_SUBCODE_CHECK (NODE, \
2253 OMP_CLAUSE__MAPPER_BINDING_), 2)
2259#define SSA_NAME_IS_VIRTUAL_OPERAND(NODE) \
2260 SSA_NAME_CHECK (NODE)->base.public_flag
2264#define SSA_NAME_IDENTIFIER(NODE) \
2265 (SSA_NAME_CHECK (NODE)->ssa_name.var != NULL_TREE \
2266 ? (TREE_CODE ((NODE)->ssa_name.var) == IDENTIFIER_NODE \
2267 ? (NODE)->ssa_name.var \
2268 : DECL_NAME ((NODE)->ssa_name.var)) \
2274#define SSA_NAME_VAR(NODE) \
2275 (SSA_NAME_CHECK (NODE)->ssa_name.var == NULL_TREE \
2276 || TREE_CODE ((NODE)->ssa_name.var) == IDENTIFIER_NODE \
2277 ? NULL_TREE : (NODE)->ssa_name.var)
2279#define SET_SSA_NAME_VAR_OR_IDENTIFIER(NODE,VAR) \
2282 tree var_ = (VAR); \
2283 SSA_NAME_CHECK (NODE)->ssa_name.var = var_; \
2284 SSA_NAME_IS_VIRTUAL_OPERAND (NODE) \
2286 && TREE_CODE (var_) == VAR_DECL \
2287 && VAR_DECL_IS_VIRTUAL_OPERAND (var_)); \
2292#define SSA_NAME_DEF_STMT(NODE) SSA_NAME_CHECK (NODE)->ssa_name.def_stmt
2296#define SSA_NAME_VERSION(NODE) SSA_NAME_CHECK (NODE)->base.u.version
2301#define SSA_NAME_OCCURS_IN_ABNORMAL_PHI(NODE) \
2302 SSA_NAME_CHECK (NODE)->base.asm_written_flag
2307#define SSA_NAME_IN_FREE_LIST(NODE) \
2308 SSA_NAME_CHECK (NODE)->base.nothrow_flag
2315#define SSA_NAME_IS_DEFAULT_DEF(NODE) \
2316 SSA_NAME_CHECK (NODE)->base.default_def_flag
2322#define SSA_NAME_POINTS_TO_READONLY_MEMORY(NODE) \
2323 SSA_NAME_CHECK (NODE)->base.deprecated_flag
2326#define SSA_NAME_PTR_INFO(N) \
2327 SSA_NAME_CHECK (N)->ssa_name.info.ptr_info
2330#define SSA_NAME_RANGE_INFO(N) \
2331 SSA_NAME_CHECK (N)->ssa_name.info.range_info
2334#define SSA_NAME_IMM_USE_NODE(NODE) SSA_NAME_CHECK (NODE)->ssa_name.imm_uses
2336#define OMP_CLAUSE_CODE(NODE) \
2337 (OMP_CLAUSE_CHECK (NODE))->omp_clause.code
2339#define OMP_CLAUSE_SET_CODE(NODE, CODE) \
2340 ((OMP_CLAUSE_CHECK (NODE))->omp_clause.code = (CODE))
2342#define OMP_CLAUSE_OPERAND(NODE, I) \
2343 OMP_CLAUSE_ELT_CHECK (NODE, I)
2346#define OMP_ITERATOR_DECL_P(NODE) \
2347 (TREE_CODE (NODE) == TREE_LIST \
2348 && TREE_PURPOSE (NODE) \
2349 && TREE_CODE (TREE_PURPOSE (NODE)) == TREE_VEC)
2353#define BLOCK_VARS(NODE) (BLOCK_CHECK (NODE)->block.vars)
2354#define BLOCK_NONLOCALIZED_VARS(NODE) \
2355 (BLOCK_CHECK (NODE)->block.nonlocalized_vars)
2356#define BLOCK_NUM_NONLOCALIZED_VARS(NODE) \
2357 vec_safe_length (BLOCK_NONLOCALIZED_VARS (NODE))
2358#define BLOCK_NONLOCALIZED_VAR(NODE,N) (*BLOCK_NONLOCALIZED_VARS (NODE))[N]
2360#define BLOCK_SUBBLOCKS(NODE) (BLOCK_CHECK (NODE)->block.subblocks)
2365#define BLOCK_SUPERCONTEXT(NODE) (BLOCK_CHECK (NODE)->block.supercontext)
2367#define BLOCK_CHAIN(NODE) (BLOCK_CHECK (NODE)->block.chain)
2372#define BLOCK_ABSTRACT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.abstract_origin)
2373#define BLOCK_ORIGIN(NODE) \
2374 (BLOCK_ABSTRACT_ORIGIN(NODE) ? BLOCK_ABSTRACT_ORIGIN(NODE) : (NODE))
2375#define BLOCK_DIE(NODE) (BLOCK_CHECK (NODE)->block.die)
2378#define BLOCK_SAME_RANGE(NODE) (BLOCK_CHECK (NODE)->base.u.bits.nameless_flag)
2381#define BLOCK_IN_COLD_SECTION_P(NODE) \
2382 (BLOCK_CHECK (NODE)->base.u.bits.atomic_flag)
2387#define BLOCK_NUMBER(NODE) (BLOCK_CHECK (NODE)->block.block_num)
2411#define BLOCK_FRAGMENT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_origin)
2412#define BLOCK_FRAGMENT_CHAIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_chain)
2418#define BLOCK_SOURCE_LOCATION(NODE) (BLOCK_CHECK (NODE)->block.locus)
2423#define BLOCK_SOURCE_END_LOCATION(NODE) (BLOCK_CHECK (NODE)->block.end_locus)
2436#define TYPE_UID(NODE) (TYPE_CHECK (NODE)->type_common.uid)
2441#define TYPE_SIZE(NODE) (TYPE_CHECK (NODE)->type_common.size)
2443#define TYPE_SIZE_UNIT(NODE) (TYPE_CHECK (NODE)->type_common.size_unit)
2444#define TYPE_POINTER_TO(NODE) (TYPE_CHECK (NODE)->type_common.pointer_to)
2445#define TYPE_REFERENCE_TO(NODE) (TYPE_CHECK (NODE)->type_common.reference_to)
2446#define TYPE_PRECISION(NODE) \
2447 (TREE_NOT_CHECK (TYPE_CHECK (NODE), VECTOR_TYPE)->type_common.precision)
2448#define TYPE_PRECISION_RAW(NODE) (TYPE_CHECK (NODE)->type_common.precision)
2449#define TYPE_NAME(NODE) (TYPE_CHECK (NODE)->type_common.name)
2450#define TYPE_NEXT_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.next_variant)
2451#define TYPE_MAIN_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.main_variant)
2452#define TYPE_CONTEXT(NODE) (TYPE_CHECK (NODE)->type_common.context)
2454#define TYPE_MODE_RAW(NODE) (TYPE_CHECK (NODE)->type_common.mode)
2455#define TYPE_MODE(NODE) \
2456 (VECTOR_TYPE_P (TYPE_CHECK (NODE)) \
2457 ? vector_type_mode (NODE) : (NODE)->type_common.mode)
2458#define SCALAR_TYPE_MODE(NODE) \
2459 (as_a <scalar_mode> (TYPE_CHECK (NODE)->type_common.mode))
2460#define SCALAR_INT_TYPE_MODE(NODE) \
2461 (as_a <scalar_int_mode> (TYPE_CHECK (NODE)->type_common.mode))
2462#define SCALAR_FLOAT_TYPE_MODE(NODE) \
2463 (as_a <scalar_float_mode> (TYPE_CHECK (NODE)->type_common.mode))
2464#define SET_TYPE_MODE(NODE, MODE) \
2465 (TYPE_CHECK (NODE)->type_common.mode = (MODE))
2489#define TYPE_CANONICAL(NODE) (TYPE_CHECK (NODE)->type_common.canonical)
2496#define TYPE_STRUCTURAL_EQUALITY_P(NODE) (TYPE_CANONICAL (NODE) == NULL_TREE)
2499#define SET_TYPE_STRUCTURAL_EQUALITY(NODE) (TYPE_CANONICAL (NODE) = NULL_TREE)
2501#define TYPE_IBIT(NODE) (GET_MODE_IBIT (TYPE_MODE (NODE)))
2502#define TYPE_FBIT(NODE) (GET_MODE_FBIT (TYPE_MODE (NODE)))
2509#define TYPE_ALIAS_SET(NODE) (TYPE_CHECK (NODE)->type_common.alias_set)
2513#define TYPE_ALIAS_SET_KNOWN_P(NODE) \
2514 (TYPE_CHECK (NODE)->type_common.alias_set != -1)
2518#define TYPE_ATTRIBUTES(NODE) (TYPE_CHECK (NODE)->type_common.attributes)
2521#define TYPE_ALIGN_RAW(NODE) \
2522 (TYPE_CHECK (NODE)->type_common.align)
2527#define TYPE_ALIGN(NODE) \
2528 (TYPE_ALIGN_RAW (NODE) \
2529 ? ((unsigned)1) << (TYPE_ALIGN_RAW(NODE) - 1) : 0)
2532#define SET_TYPE_ALIGN(NODE, X) \
2533 (TYPE_CHECK (NODE)->type_common.align = ffs_hwi (X))
2537#define TYPE_USER_ALIGN(NODE) (TYPE_CHECK (NODE)->base.u.bits.user_align)
2540#define TYPE_ALIGN_UNIT(NODE) (TYPE_ALIGN (NODE) / BITS_PER_UNIT)
2544#define TYPE_WARN_IF_NOT_ALIGN_RAW(NODE) \
2545 (TYPE_CHECK (NODE)->type_common.warn_if_not_align)
2546#define TYPE_WARN_IF_NOT_ALIGN(NODE) \
2547 (TYPE_WARN_IF_NOT_ALIGN_RAW (NODE) \
2548 ? ((unsigned)1) << (TYPE_WARN_IF_NOT_ALIGN_RAW (NODE) - 1) : 0)
2551#define SET_TYPE_WARN_IF_NOT_ALIGN(NODE, X) \
2552 (TYPE_WARN_IF_NOT_ALIGN_RAW (NODE) = ffs_hwi (X))
2561#define TYPE_STUB_DECL(NODE) (TREE_CHAIN (TYPE_CHECK (NODE)))
2566#define TYPE_NO_FORCE_BLK(NODE) \
2567 (TYPE_CHECK (NODE)->type_common.no_force_blk_flag)
2570#define TYPE_VOLATILE(NODE) (TYPE_CHECK (NODE)->base.volatile_flag)
2573#define TYPE_ATOMIC(NODE) (TYPE_CHECK (NODE)->base.u.bits.atomic_flag)
2576#define TYPE_READONLY(NODE) (TYPE_CHECK (NODE)->base.readonly_flag)
2580#define TYPE_RESTRICT(NODE) (TYPE_CHECK (NODE)->type_common.restrict_flag)
2583#define TYPE_NAMELESS(NODE) (TYPE_CHECK (NODE)->base.u.bits.nameless_flag)
2586#define TYPE_ADDR_SPACE(NODE) (TYPE_CHECK (NODE)->base.u.bits.address_space)
2590#define ENCODE_QUAL_ADDR_SPACE(NUM) (((NUM) & 0xFF) << 8)
2591#define DECODE_QUAL_ADDR_SPACE(X) (((X) >> 8) & 0xFF)
2594#define CLEAR_QUAL_ADDR_SPACE(X) ((X) & ~0xFF00)
2598#define KEEP_QUAL_ADDR_SPACE(X) ((X) & 0xFF00)
2601#define TYPE_QUALS(NODE) \
2602 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2603 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2604 | (TYPE_ATOMIC (NODE) * TYPE_QUAL_ATOMIC) \
2605 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT) \
2606 | (ENCODE_QUAL_ADDR_SPACE (TYPE_ADDR_SPACE (NODE)))))
2609#define TYPE_QUALS_NO_ADDR_SPACE(NODE) \
2610 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2611 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2612 | (TYPE_ATOMIC (NODE) * TYPE_QUAL_ATOMIC) \
2613 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT)))
2617#define TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC(NODE) \
2618 ((int) ((TYPE_READONLY (NODE) * TYPE_QUAL_CONST) \
2619 | (TYPE_VOLATILE (NODE) * TYPE_QUAL_VOLATILE) \
2620 | (TYPE_RESTRICT (NODE) * TYPE_QUAL_RESTRICT)))
2623#define TYPE_LANG_FLAG_0(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_0)
2624#define TYPE_LANG_FLAG_1(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_1)
2625#define TYPE_LANG_FLAG_2(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_2)
2626#define TYPE_LANG_FLAG_3(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_3)
2627#define TYPE_LANG_FLAG_4(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_4)
2628#define TYPE_LANG_FLAG_5(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_5)
2629#define TYPE_LANG_FLAG_6(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_6)
2630#define TYPE_LANG_FLAG_7(NODE) (TYPE_CHECK (NODE)->type_common.lang_flag_7)
2634#define TREE_VISITED(NODE) ((NODE)->base.visited)
2639#define TYPE_STRING_FLAG(NODE) \
2640 (ARRAY_OR_INTEGER_TYPE_CHECK (NODE)->type_common.string_flag)
2645#define TYPE_CXX_ODR_P(NODE) \
2646 (RECORD_OR_UNION_CHECK (NODE)->type_common.string_flag)
2650#define TYPE_VECTOR_OPAQUE(NODE) \
2651 (VECTOR_TYPE_CHECK (NODE)->base.default_def_flag)
2655#define TYPE_NEEDS_CONSTRUCTING(NODE) \
2656 (TYPE_CHECK (NODE)->type_common.needs_constructing_flag)
2662#define TYPE_TRANSPARENT_AGGR(NODE) \
2663 (RECORD_OR_UNION_CHECK (NODE)->type_common.transparent_aggr_flag)
2668#define TYPE_NONALIASED_COMPONENT(NODE) \
2669 (ARRAY_TYPE_CHECK (NODE)->type_common.transparent_aggr_flag)
2680#define TYPE_TYPELESS_STORAGE(NODE) \
2681 (TREE_CHECK4 (NODE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, \
2682 ARRAY_TYPE)->type_common.typeless_storage)
2686#define TYPE_PACKED(NODE) (TYPE_CHECK (NODE)->base.u.bits.packed_flag)
2691#define TYPE_CONTAINS_PLACEHOLDER_INTERNAL(NODE) \
2692 (TYPE_CHECK (NODE)->type_common.contains_placeholder_bits)
2695#define TYPE_FINAL_P(NODE) \
2696 (RECORD_OR_UNION_CHECK (NODE)->base.default_def_flag)
2707#define TYPE_SYMTAB_ADDRESS(NODE) \
2708 (TYPE_CHECK (NODE)->type_common.symtab.address)
2712#define TYPE_SYMTAB_DIE(NODE) \
2713 (TYPE_CHECK (NODE)->type_common.symtab.die)
2719#define TYPE_SYMTAB_IS_ADDRESS (0)
2720#define TYPE_SYMTAB_IS_DIE (1)
2722#define TYPE_LANG_SPECIFIC(NODE) \
2723 (TYPE_CHECK (NODE)->type_with_lang_specific.lang_specific)
2725#define TYPE_VALUES(NODE) (ENUMERAL_TYPE_CHECK (NODE)->type_non_common.values)
2726#define TYPE_DOMAIN(NODE) (ARRAY_TYPE_CHECK (NODE)->type_non_common.values)
2727#define TYPE_FIELDS(NODE) \
2728 (RECORD_OR_UNION_CHECK (NODE)->type_non_common.values)
2729#define TYPE_CACHED_VALUES(NODE) (TYPE_CHECK (NODE)->type_non_common.values)
2730#define TYPE_ARG_TYPES(NODE) \
2731 (FUNC_OR_METHOD_CHECK (NODE)->type_non_common.values)
2732#define TYPE_VALUES_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.values)
2734#define TYPE_MIN_VALUE(NODE) \
2735 (NUMERICAL_TYPE_CHECK (NODE)->type_non_common.minval)
2736#define TYPE_NEXT_PTR_TO(NODE) \
2737 (POINTER_TYPE_CHECK (NODE)->type_non_common.minval)
2738#define TYPE_NEXT_REF_TO(NODE) \
2739 (REFERENCE_TYPE_CHECK (NODE)->type_non_common.minval)
2740#define TYPE_VFIELD(NODE) \
2741 (RECORD_OR_UNION_CHECK (NODE)->type_non_common.minval)
2742#define TYPE_MIN_VALUE_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.minval)
2744#define TYPE_MAX_VALUE(NODE) \
2745 (NUMERICAL_TYPE_CHECK (NODE)->type_non_common.maxval)
2746#define TYPE_METHOD_BASETYPE(NODE) \
2747 (FUNC_OR_METHOD_CHECK (NODE)->type_non_common.maxval)
2748#define TYPE_OFFSET_BASETYPE(NODE) \
2749 (OFFSET_TYPE_CHECK (NODE)->type_non_common.maxval)
2753#define TYPE_ARRAY_MAX_SIZE(ARRAY_TYPE) \
2754 (ARRAY_TYPE_CHECK (ARRAY_TYPE)->type_non_common.maxval)
2755#define TYPE_MAX_VALUE_RAW(NODE) (TYPE_CHECK (NODE)->type_non_common.maxval)
2758#define TYPE_BINFO(NODE) (RECORD_OR_UNION_CHECK (NODE)->type_non_common.maxval)
2761#define TYPE_LANG_SLOT_1(NODE) \
2762 (TYPE_CHECK (NODE)->type_non_common.lang_1)
2782#define BINFO_VIRTUAL_P(NODE) (TREE_BINFO_CHECK (NODE)->base.static_flag)
2785#define BINFO_FLAG_0(NODE) TREE_LANG_FLAG_0 (TREE_BINFO_CHECK (NODE))
2786#define BINFO_FLAG_1(NODE) TREE_LANG_FLAG_1 (TREE_BINFO_CHECK (NODE))
2787#define BINFO_FLAG_2(NODE) TREE_LANG_FLAG_2 (TREE_BINFO_CHECK (NODE))
2788#define BINFO_FLAG_3(NODE) TREE_LANG_FLAG_3 (TREE_BINFO_CHECK (NODE))
2789#define BINFO_FLAG_4(NODE) TREE_LANG_FLAG_4 (TREE_BINFO_CHECK (NODE))
2790#define BINFO_FLAG_5(NODE) TREE_LANG_FLAG_5 (TREE_BINFO_CHECK (NODE))
2791#define BINFO_FLAG_6(NODE) TREE_LANG_FLAG_6 (TREE_BINFO_CHECK (NODE))
2794#define BINFO_TYPE(NODE) TREE_TYPE (TREE_BINFO_CHECK (NODE))
2802#define BINFO_OFFSET(NODE) (TREE_BINFO_CHECK (NODE)->binfo.offset)
2803#define BINFO_OFFSET_ZEROP(NODE) (integer_zerop (BINFO_OFFSET (NODE)))
2809#define BINFO_VTABLE(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtable)
2814#define BINFO_VIRTUALS(NODE) (TREE_BINFO_CHECK (NODE)->binfo.virtuals)
2822#define BINFO_BASE_BINFOS(NODE) (&TREE_BINFO_CHECK (NODE)->binfo.base_binfos)
2825#define BINFO_N_BASE_BINFOS(NODE) (BINFO_BASE_BINFOS (NODE)->length ())
2828#define BINFO_BASE_BINFO(NODE,N) \
2829 ((*BINFO_BASE_BINFOS (NODE))[(N)])
2830#define BINFO_BASE_ITERATE(NODE,N,B) \
2831 (BINFO_BASE_BINFOS (NODE)->iterate ((N), &(B)))
2832#define BINFO_BASE_APPEND(NODE,T) \
2833 (BINFO_BASE_BINFOS (NODE)->quick_push ((T)))
2840#define BINFO_VPTR_FIELD(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vptr_field)
2850#define BINFO_BASE_ACCESSES(NODE) \
2851 (TREE_BINFO_CHECK (NODE)->binfo.base_accesses)
2853#define BINFO_BASE_ACCESS(NODE,N) \
2854 (*BINFO_BASE_ACCESSES (NODE))[(N)]
2855#define BINFO_BASE_ACCESS_APPEND(NODE,T) \
2856 BINFO_BASE_ACCESSES (NODE)->quick_push ((T))
2860#define BINFO_SUBVTT_INDEX(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtt_subvtt)
2864#define BINFO_VPTR_INDEX(NODE) (TREE_BINFO_CHECK (NODE)->binfo.vtt_vptr)
2870#define BINFO_INHERITANCE_CHAIN(NODE) \
2871 (TREE_BINFO_CHECK (NODE)->binfo.inheritance)
2878#define SSA_VAR_P(DECL) \
2879 (TREE_CODE (DECL) == VAR_DECL \
2880 || TREE_CODE (DECL) == PARM_DECL \
2881 || TREE_CODE (DECL) == RESULT_DECL \
2882 || TREE_CODE (DECL) == SSA_NAME)
2885#define DECL_CHAIN(NODE) (TREE_CHAIN (DECL_MINIMAL_CHECK (NODE)))
2889#define DECL_NAME(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.name)
2892#define TYPE_IDENTIFIER(NODE) \
2893 (TYPE_NAME (NODE) && DECL_P (TYPE_NAME (NODE)) \
2894 ? DECL_NAME (TYPE_NAME (NODE)) : TYPE_NAME (NODE))
2897#define DECL_UID(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.uid)
2901#define DEBUG_TEMP_UID(NODE) (-DECL_UID (TREE_CHECK ((NODE), DEBUG_EXPR_DECL)))
2905#define DECL_PT_UID(NODE) \
2906 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid == -1u \
2907 ? (NODE)->decl_minimal.uid : (NODE)->decl_common.pt_uid)
2909#define SET_DECL_PT_UID(NODE, UID) \
2910 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid = (UID))
2913#define DECL_PT_UID_SET_P(NODE) \
2914 (DECL_COMMON_CHECK (NODE)->decl_common.pt_uid != -1u)
2920#define DECL_SOURCE_LOCATION(NODE) \
2921 (DECL_MINIMAL_CHECK (NODE)->decl_minimal.locus)
2922#define DECL_SOURCE_FILE(NODE) LOCATION_FILE (DECL_SOURCE_LOCATION (NODE))
2923#define DECL_SOURCE_LINE(NODE) LOCATION_LINE (DECL_SOURCE_LOCATION (NODE))
2924#define DECL_SOURCE_COLUMN(NODE) LOCATION_COLUMN (DECL_SOURCE_LOCATION (NODE))
2929#define DECL_IS_UNDECLARED_BUILTIN(DECL) \
2930 (DECL_SOURCE_LOCATION (DECL) <= BUILTINS_LOCATION)
2941#define DECL_CONTEXT(NODE) (DECL_MINIMAL_CHECK (NODE)->decl_minimal.context)
2942#define DECL_FIELD_CONTEXT(NODE) \
2943 (FIELD_DECL_CHECK (NODE)->decl_minimal.context)
2946#define DECL_NAMELESS(NODE) (DECL_MINIMAL_CHECK (NODE)->base.u.bits.nameless_flag)
2954#define DECL_ABSTRACT_ORIGIN(NODE) \
2955 (DECL_COMMON_CHECK (NODE)->decl_common.abstract_origin)
2959#define DECL_ORIGIN(NODE) \
2960 (DECL_ABSTRACT_ORIGIN (NODE) ? DECL_ABSTRACT_ORIGIN (NODE) : (NODE))
2966#define DECL_FROM_INLINE(NODE) \
2967 (DECL_ABSTRACT_ORIGIN (NODE) != NULL_TREE \
2968 && DECL_ABSTRACT_ORIGIN (NODE) != (NODE))
2971#define DECL_ATTRIBUTES(NODE) \
2972 (DECL_COMMON_CHECK (NODE)->decl_common.attributes)
2984#define DECL_INITIAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.initial)
2990#define DECL_SIZE(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.size)
2992#define DECL_SIZE_UNIT(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.size_unit)
2993#define DECL_ALIGN_RAW(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.align)
2997#define DECL_ALIGN(NODE) \
2998 (DECL_ALIGN_RAW (NODE) \
2999 ? ((unsigned)1) << (DECL_ALIGN_RAW (NODE) - 1) : 0)
3001#define SET_DECL_ALIGN(NODE, X) \
3002 (DECL_ALIGN_RAW (NODE) = ffs_hwi (X))
3006#define DECL_WARN_IF_NOT_ALIGN_RAW(NODE) \
3007 (DECL_COMMON_CHECK (NODE)->decl_common.warn_if_not_align)
3008#define DECL_WARN_IF_NOT_ALIGN(NODE) \
3009 (DECL_WARN_IF_NOT_ALIGN_RAW (NODE) \
3010 ? ((unsigned)1) << (DECL_WARN_IF_NOT_ALIGN_RAW (NODE) - 1) : 0)
3013#define SET_DECL_WARN_IF_NOT_ALIGN(NODE, X) \
3014 (DECL_WARN_IF_NOT_ALIGN_RAW (NODE) = ffs_hwi (X))
3017#define DECL_ALIGN_UNIT(NODE) (DECL_ALIGN (NODE) / BITS_PER_UNIT)
3020#define DECL_USER_ALIGN(NODE) \
3021 (DECL_COMMON_CHECK (NODE)->base.u.bits.user_align)
3025#define DECL_MODE(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.mode)
3026#define SET_DECL_MODE(NODE, MODE) \
3027 (DECL_COMMON_CHECK (NODE)->decl_common.mode = (MODE))
3033#define DECL_UNCHECKED_FUNCTION_CODE(NODE) \
3034 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_code)
3037#define ALLOCA_FUNCTION_CODE_P(FCODE) \
3038 ((FCODE) == BUILT_IN_ALLOCA \
3039 || (FCODE) == BUILT_IN_ALLOCA_WITH_ALIGN \
3040 || (FCODE) == BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX)
3043#define CASE_BUILT_IN_ALLOCA \
3044 case BUILT_IN_ALLOCA: \
3045 case BUILT_IN_ALLOCA_WITH_ALIGN: \
3046 case BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX
3048#define DECL_FUNCTION_PERSONALITY(NODE) \
3049 (FUNCTION_DECL_CHECK (NODE)->function_decl.personality)
3055#define DECL_IGNORED_P(NODE) \
3056 (DECL_COMMON_CHECK (NODE)->decl_common.ignored_flag)
3064#define DECL_ABSTRACT_P(NODE) \
3065 (DECL_COMMON_CHECK (NODE)->decl_common.abstract_flag)
3068#define DECL_LANG_SPECIFIC(NODE) \
3069 (DECL_COMMON_CHECK (NODE)->decl_common.lang_specific)
3078#define DECL_EXTERNAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.decl_flag_1)
3087#define DECL_NONLOCAL(NODE) \
3088 (DECL_COMMON_CHECK (NODE)->decl_common.nonlocal_flag)
3093#define DECL_VIRTUAL_P(NODE) \
3094 (DECL_COMMON_CHECK (NODE)->decl_common.virtual_flag)
3097#define DECL_ARTIFICIAL(NODE) \
3098 (DECL_COMMON_CHECK (NODE)->decl_common.artificial_flag)
3101#define DECL_LANG_FLAG_0(NODE) \
3102 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_0)
3103#define DECL_LANG_FLAG_1(NODE) \
3104 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_1)
3105#define DECL_LANG_FLAG_2(NODE) \
3106 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_2)
3107#define DECL_LANG_FLAG_3(NODE) \
3108 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_3)
3109#define DECL_LANG_FLAG_4(NODE) \
3110 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_4)
3111#define DECL_LANG_FLAG_5(NODE) \
3112 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_5)
3113#define DECL_LANG_FLAG_6(NODE) \
3114 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_6)
3115#define DECL_LANG_FLAG_7(NODE) \
3116 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_7)
3117#define DECL_LANG_FLAG_8(NODE) \
3118 (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_8)
3121#define SCOPE_FILE_SCOPE_P(EXP) \
3122 (! (EXP) || TREE_CODE (EXP) == TRANSLATION_UNIT_DECL)
3124#define DECL_FILE_SCOPE_P(EXP) SCOPE_FILE_SCOPE_P (DECL_CONTEXT (EXP))
3126#define TYPE_FILE_SCOPE_P(EXP) SCOPE_FILE_SCOPE_P (TYPE_CONTEXT (EXP))
3130#define DECL_PRESERVE_P(DECL) \
3131 DECL_COMMON_CHECK (DECL)->decl_common.preserve_flag
3136#define DECL_NOINIT_P(DECL) \
3138 && (lookup_attribute ("noinit", DECL_ATTRIBUTES (DECL)) != NULL_TREE))
3143#define DECL_PERSISTENT_P(DECL) \
3145 && (lookup_attribute ("persistent", DECL_ATTRIBUTES (DECL)) != NULL_TREE))
3152#define DECL_NOT_GIMPLE_REG_P(DECL) \
3153 DECL_COMMON_CHECK (DECL)->decl_common.not_gimple_reg_flag
3161#define DECL_HAS_VALUE_EXPR_P(NODE) \
3162 (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, RESULT_DECL) \
3163 ->decl_common.decl_flag_2)
3164#define DECL_VALUE_EXPR(NODE) \
3165 (decl_value_expr_lookup (DECL_WRTL_CHECK (NODE)))
3166#define SET_DECL_VALUE_EXPR(NODE, VAL) \
3167 (decl_value_expr_insert (DECL_WRTL_CHECK (NODE), VAL))
3172#define DECL_RTL(NODE) \
3173 (DECL_WRTL_CHECK (NODE)->decl_with_rtl.rtl \
3174 ? (NODE)->decl_with_rtl.rtl \
3175 : (make_decl_rtl (NODE), (NODE)->decl_with_rtl.rtl))
3178#define SET_DECL_RTL(NODE, RTL) set_decl_rtl (NODE, RTL)
3181#define HAS_RTL_P(NODE) (CODE_CONTAINS_STRUCT (TREE_CODE (NODE), TS_DECL_WRTL))
3184#define DECL_RTL_SET_P(NODE) \
3185 (HAS_RTL_P (NODE) && DECL_WRTL_CHECK (NODE)->decl_with_rtl.rtl != NULL)
3189#define COPY_DECL_RTL(SRC_DECL, DST_DECL) \
3190 (DECL_WRTL_CHECK (DST_DECL)->decl_with_rtl.rtl \
3191 = DECL_WRTL_CHECK (SRC_DECL)->decl_with_rtl.rtl)
3194#define DECL_RTL_IF_SET(NODE) (DECL_RTL_SET_P (NODE) ? DECL_RTL (NODE) : NULL)
3196#if (GCC_VERSION >= 2007)
3197#define DECL_RTL_KNOWN_SET(decl) __extension__ \
3198({ tree const __d = (decl); \
3199 gcc_checking_assert (DECL_RTL_SET_P (__d)); \
3202 &*DECL_RTL_IF_SET (__d); })
3204#define DECL_RTL_KNOWN_SET(decl) (&*DECL_RTL_IF_SET (decl))
3208#define DECL_REGISTER(NODE) (DECL_WRTL_CHECK (NODE)->decl_common.decl_flag_0)
3213#define DECL_FIELD_OFFSET(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.offset)
3219#define DECL_FIELD_BIT_OFFSET(NODE) \
3220 (FIELD_DECL_CHECK (NODE)->field_decl.bit_offset)
3225#define DECL_BIT_FIELD_TYPE(NODE) \
3226 (FIELD_DECL_CHECK (NODE)->field_decl.bit_field_type)
3230#define DECL_BIT_FIELD_REPRESENTATIVE(NODE) \
3231 (FIELD_DECL_CHECK (NODE)->field_decl.qualifier)
3235#define DECL_QUALIFIER(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.qualifier)
3241#define DECL_OFFSET_ALIGN(NODE) \
3242 (HOST_WIDE_INT_1U << FIELD_DECL_CHECK (NODE)->decl_common.off_align)
3245#define SET_DECL_OFFSET_ALIGN(NODE, X) \
3246 (FIELD_DECL_CHECK (NODE)->decl_common.off_align = ffs_hwi (X) - 1)
3251#define DECL_FCONTEXT(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.fcontext)
3254#define DECL_PACKED(NODE) (FIELD_DECL_CHECK (NODE)->base.u.bits.packed_flag)
3258#define DECL_BIT_FIELD(NODE) (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_1)
3264#define DECL_FIELD_ABI_IGNORED(NODE) \
3265 (!DECL_BIT_FIELD (NODE) && (NODE)->decl_common.decl_flag_0)
3266#define SET_DECL_FIELD_ABI_IGNORED(NODE, VAL) \
3268 gcc_checking_assert (!DECL_BIT_FIELD (NODE)); \
3269 FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_0 = (VAL); \
3277#define DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD(NODE) \
3278 (DECL_BIT_FIELD (NODE) && (NODE)->decl_common.decl_flag_0)
3279#define SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD(NODE, VAL) \
3281 gcc_checking_assert (DECL_BIT_FIELD (NODE)); \
3282 FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_0 = (VAL); \
3300#define DECL_NONADDRESSABLE_P(NODE) \
3301 (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_2)
3304#define DECL_PADDING_P(NODE) \
3305 (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_3)
3310#define DECL_NOT_FLEXARRAY(NODE) \
3311 (FIELD_DECL_CHECK (NODE)->decl_common.decl_not_flexarray)
3316#define LABEL_DECL_UID(NODE) \
3317 (LABEL_DECL_CHECK (NODE)->label_decl.label_decl_uid)
3321#define EH_LANDING_PAD_NR(NODE) \
3322 (LABEL_DECL_CHECK (NODE)->label_decl.eh_landing_pad_nr)
3326#define DECL_ARG_TYPE(NODE) (PARM_DECL_CHECK (NODE)->decl_common.initial)
3330#define DECL_INCOMING_RTL(NODE) \
3331 (PARM_DECL_CHECK (NODE)->parm_decl.incoming_rtl)
3335#define DECL_IN_SYSTEM_HEADER(NODE) \
3336 (in_system_header_at (DECL_SOURCE_LOCATION (NODE)))
3340#define DECL_DEFER_OUTPUT(NODE) \
3341 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.defer_output)
3345#define DECL_IN_TEXT_SECTION(NODE) \
3346 (VAR_DECL_CHECK (NODE)->decl_with_vis.in_text_section)
3350#define DECL_IN_CONSTANT_POOL(NODE) \
3351 (VAR_DECL_CHECK (NODE)->decl_with_vis.in_constant_pool)
3356#define DECL_COMMON(NODE) \
3357 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.common_flag)
3361#define DECL_HARD_REGISTER(NODE) \
3362 (VAR_DECL_CHECK (NODE)->decl_with_vis.hard_register)
3365#define DECL_WEAK(NODE) (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.weak_flag)
3368#define DECL_DLLIMPORT_P(NODE) \
3369 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.dllimport_flag)
3380#define DECL_COMDAT(NODE) \
3381 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.comdat_flag)
3383#define DECL_COMDAT_GROUP(NODE) \
3384 decl_comdat_group (NODE)
3388#define DECL_ONE_ONLY(NODE) (DECL_COMDAT_GROUP (NODE) != NULL_TREE \
3389 && (TREE_PUBLIC (NODE) || DECL_EXTERNAL (NODE)))
3398#define DECL_ASSEMBLER_NAME(NODE) decl_assembler_name (NODE)
3401#define DECL_ASSEMBLER_NAME_RAW(NODE) \
3402 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.assembler_name)
3406#define HAS_DECL_ASSEMBLER_NAME_P(NODE) \
3407 (CODE_CONTAINS_STRUCT (TREE_CODE (NODE), TS_DECL_WITH_VIS))
3412#define DECL_ASSEMBLER_NAME_SET_P(NODE) \
3413 (DECL_ASSEMBLER_NAME_RAW (NODE) != NULL_TREE)
3416#define SET_DECL_ASSEMBLER_NAME(NODE, NAME) \
3417 overwrite_decl_assembler_name (NODE, NAME)
3430#define COPY_DECL_ASSEMBLER_NAME(SRC_DECL, DST_DECL) \
3431 SET_DECL_ASSEMBLER_NAME (DST_DECL, DECL_ASSEMBLER_NAME_RAW (SRC_DECL))
3435#define DECL_SECTION_NAME(NODE) decl_section_name (NODE)
3439#define DECL_SEEN_IN_BIND_EXPR_P(NODE) \
3440 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.seen_in_bind_expr)
3443#define DECL_VISIBILITY(NODE) \
3444 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.visibility)
3448#define DECL_VISIBILITY_SPECIFIED(NODE) \
3449 (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.visibility_specified)
3453#define DECL_TLS_MODEL(NODE) decl_tls_model (NODE)
3457#define DECL_THREAD_LOCAL_P(NODE) \
3458 ((TREE_STATIC (NODE) || DECL_EXTERNAL (NODE)) && decl_tls_model (NODE) >= TLS_MODEL_REAL)
3463#define DECL_HAS_INIT_PRIORITY_P(NODE) \
3464 (VAR_DECL_CHECK (NODE)->decl_with_vis.init_priority_p)
3470#define DECL_HAS_DEBUG_EXPR_P(NODE) \
3471 (VAR_DECL_CHECK (NODE)->decl_common.debug_expr_is_from)
3472#define DECL_DEBUG_EXPR(NODE) \
3473 (decl_debug_expr_lookup (VAR_DECL_CHECK (NODE)))
3475#define SET_DECL_DEBUG_EXPR(NODE, VAL) \
3476 (decl_debug_expr_insert (VAR_DECL_CHECK (NODE), VAL))
3485#define DECL_INIT_PRIORITY(NODE) \
3486 (decl_init_priority_lookup (NODE))
3488#define SET_DECL_INIT_PRIORITY(NODE, VAL) \
3489 (decl_init_priority_insert (NODE, VAL))
3492#define DECL_FINI_PRIORITY(NODE) \
3493 (decl_fini_priority_lookup (NODE))
3495#define SET_DECL_FINI_PRIORITY(NODE, VAL) \
3496 (decl_fini_priority_insert (NODE, VAL))
3500#define DEFAULT_INIT_PRIORITY 65535
3503#define MAX_INIT_PRIORITY 65535
3507#define MAX_RESERVED_INIT_PRIORITY 100
3510#define VAR_DECL_IS_VIRTUAL_OPERAND(NODE) \
3511 (VAR_DECL_CHECK (NODE)->base.u.bits.saturating_flag)
3514#define DECL_NONLOCAL_FRAME(NODE) \
3515 (VAR_DECL_CHECK (NODE)->base.default_def_flag)
3518#define DECL_NONALIASED(NODE) \
3519 (VAR_DECL_CHECK (NODE)->base.nothrow_flag)
3524#define DECL_MERGEABLE(NODE) \
3525 (VAR_DECL_CHECK (NODE)->decl_common.decl_flag_3)
3529#define DECL_RESULT_FLD(NODE) \
3530 (DECL_NON_COMMON_CHECK (NODE)->decl_non_common.result)
3539#define DECL_VINDEX(NODE) \
3540 (FUNCTION_DECL_CHECK (NODE)->function_decl.vindex)
3543#define DECL_RESULT(NODE) (FUNCTION_DECL_CHECK (NODE)->decl_non_common.result)
3546#define DECL_UNINLINABLE(NODE) \
3547 (FUNCTION_DECL_CHECK (NODE)->function_decl.uninlinable)
3551#define DECL_SAVED_TREE(NODE) \
3552 (FUNCTION_DECL_CHECK (NODE)->function_decl.saved_tree)
3557#define DECL_IS_MALLOC(NODE) \
3558 (FUNCTION_DECL_CHECK (NODE)->function_decl.malloc_flag)
3561#define FUNCTION_DECL_DECL_TYPE(NODE) \
3562 (NODE->function_decl.decl_type)
3582#define DECL_IS_REPLACEABLE_OPERATOR(NODE)\
3583 (FUNCTION_DECL_CHECK (NODE)->function_decl.replaceable_operator)
3588#define DECL_IS_OPERATOR_NEW_P(NODE) \
3589 (FUNCTION_DECL_DECL_TYPE (FUNCTION_DECL_CHECK (NODE)) \
3590 == function_decl_type::OPERATOR_NEW)
3592#define DECL_IS_REPLACEABLE_OPERATOR_NEW_P(NODE) \
3593 (DECL_IS_OPERATOR_NEW_P (NODE) && DECL_IS_REPLACEABLE_OPERATOR (NODE))
3595#define DECL_SET_IS_OPERATOR_NEW(NODE, VAL) \
3596 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), \
3597 function_decl_type::OPERATOR_NEW, VAL)
3601#define DECL_IS_OPERATOR_DELETE_P(NODE) \
3602 (FUNCTION_DECL_DECL_TYPE (FUNCTION_DECL_CHECK (NODE)) \
3603 == function_decl_type::OPERATOR_DELETE)
3605#define DECL_SET_IS_OPERATOR_DELETE(NODE, VAL) \
3606 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), \
3607 function_decl_type::OPERATOR_DELETE, VAL)
3611#define DECL_IS_RETURNS_TWICE(NODE) \
3612 (FUNCTION_DECL_CHECK (NODE)->function_decl.returns_twice_flag)
3619#define DECL_PURE_P(NODE) (FUNCTION_DECL_CHECK (NODE)->function_decl.pure_flag)
3627#define DECL_LOOPING_CONST_OR_PURE_P(NODE) \
3628 (FUNCTION_DECL_CHECK (NODE)->function_decl.looping_const_or_pure_flag)
3633#define DECL_IS_NOVOPS(NODE) \
3634 (FUNCTION_DECL_CHECK (NODE)->function_decl.novops_flag)
3638#define DECL_STATIC_CONSTRUCTOR(NODE) \
3639 (FUNCTION_DECL_CHECK (NODE)->function_decl.static_ctor_flag)
3641#define DECL_STATIC_DESTRUCTOR(NODE) \
3642(FUNCTION_DECL_CHECK (NODE)->function_decl.static_dtor_flag)
3646#define DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT(NODE) \
3647 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_instrument_function_entry_exit)
3651#define DECL_NO_LIMIT_STACK(NODE) \
3652 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_limit_stack)
3655#define DECL_STATIC_CHAIN(NODE) \
3656 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.regdecl_flag)
3661#define DECL_POSSIBLY_INLINED(DECL) \
3662 FUNCTION_DECL_CHECK (DECL)->function_decl.possibly_inlined
3667#define DECL_DECLARED_INLINE_P(NODE) \
3668 (FUNCTION_DECL_CHECK (NODE)->function_decl.declared_inline_flag)
3672#define DECL_NO_INLINE_WARNING_P(NODE) \
3673 (FUNCTION_DECL_CHECK (NODE)->function_decl.no_inline_warning_flag)
3676#define BUILTIN_TM_LOAD_STORE_P(FN) \
3677 ((FN) >= BUILT_IN_TM_STORE_1 && (FN) <= BUILT_IN_TM_LOAD_RFW_LDOUBLE)
3680#define BUILTIN_TM_LOAD_P(FN) \
3681 ((FN) >= BUILT_IN_TM_LOAD_1 && (FN) <= BUILT_IN_TM_LOAD_RFW_LDOUBLE)
3684#define BUILTIN_TM_STORE_P(FN) \
3685 ((FN) >= BUILT_IN_TM_STORE_1 && (FN) <= BUILT_IN_TM_STORE_WAW_LDOUBLE)
3687#define CASE_BUILT_IN_TM_LOAD(FN) \
3688 case BUILT_IN_TM_LOAD_##FN: \
3689 case BUILT_IN_TM_LOAD_RAR_##FN: \
3690 case BUILT_IN_TM_LOAD_RAW_##FN: \
3691 case BUILT_IN_TM_LOAD_RFW_##FN
3693#define CASE_BUILT_IN_TM_STORE(FN) \
3694 case BUILT_IN_TM_STORE_##FN: \
3695 case BUILT_IN_TM_STORE_WAR_##FN: \
3696 case BUILT_IN_TM_STORE_WAW_##FN
3702#define DECL_DISREGARD_INLINE_LIMITS(NODE) \
3703 (FUNCTION_DECL_CHECK (NODE)->function_decl.disregard_inline_limits)
3709#define DECL_HAS_DEBUG_ARGS_P(NODE) \
3710 (FUNCTION_DECL_CHECK (NODE)->function_decl.has_debug_args_flag)
3714#define DECL_STRUCT_FUNCTION(NODE) \
3715 (FUNCTION_DECL_CHECK (NODE)->function_decl.f)
3718#define DECL_BUILT_IN_CLASS(NODE) \
3719 ((built_in_class) FUNCTION_DECL_CHECK (NODE)->function_decl.built_in_class)
3722#define DECL_ARGUMENTS(NODE) \
3723 (FUNCTION_DECL_CHECK (NODE)->function_decl.arguments)
3727#define DECL_FUNCTION_SPECIFIC_TARGET(NODE) \
3728 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_specific_target)
3732#define DECL_FUNCTION_SPECIFIC_OPTIMIZATION(NODE) \
3733 (FUNCTION_DECL_CHECK (NODE)->function_decl.function_specific_optimization)
3738#define DECL_FUNCTION_VERSIONED(NODE)\
3739 (FUNCTION_DECL_CHECK (NODE)->function_decl.versioned_function)
3745#define DECL_CXX_CONSTRUCTOR_P(NODE)\
3746 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.cxx_constructor)
3750#define DECL_CXX_DESTRUCTOR_P(NODE)\
3751 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.cxx_destructor)
3754#define DECL_LAMBDA_FUNCTION_P(NODE) \
3755 (FUNCTION_DECL_DECL_TYPE (FUNCTION_DECL_CHECK (NODE)) \
3756 == function_decl_type::LAMBDA_FUNCTION)
3758#define DECL_SET_LAMBDA_FUNCTION(NODE, VAL) \
3759 set_function_decl_type (FUNCTION_DECL_CHECK (NODE), \
3760 function_decl_type::LAMBDA_FUNCTION, VAL)
3764#define DECL_FINAL_P(NODE)\
3765 (FUNCTION_DECL_CHECK (NODE)->decl_with_vis.final)
3768#define TRANSLATION_UNIT_LANGUAGE(NODE) \
3769 (TRANSLATION_UNIT_DECL_CHECK (NODE)->translation_unit_decl.language)
3774#define DECL_ORIGINAL_TYPE(NODE) \
3775 (TYPE_DECL_CHECK (NODE)->decl_non_common.result)
3780#define TYPE_DECL_SUPPRESS_DEBUG(NODE) \
3781 (TYPE_DECL_CHECK (NODE)->decl_common.decl_flag_1)
3785#define IMPORTED_DECL_ASSOCIATED_DECL(NODE) \
3786(DECL_INITIAL (IMPORTED_DECL_CHECK (NODE)))
3790#define NAMELIST_DECL_ASSOCIATED_DECL(NODE) \
3791 (DECL_INITIAL (NODE))
3799#define STATEMENT_LIST_HEAD(NODE) \
3800 (STATEMENT_LIST_CHECK (NODE)->stmt_list.head)
3801#define STATEMENT_LIST_TAIL(NODE) \
3802 (STATEMENT_LIST_CHECK (NODE)->stmt_list.tail)
3804#define TREE_OPTIMIZATION(NODE) \
3805 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.opts)
3807#define TREE_OPTIMIZATION_OPTABS(NODE) \
3808 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.optabs)
3810#define TREE_OPTIMIZATION_BASE_OPTABS(NODE) \
3811 (OPTIMIZATION_NODE_CHECK (NODE)->optimization.base_optabs)
3816 struct gcc_options *opts_set);
3818#define TREE_TARGET_OPTION(NODE) \
3819 (TARGET_OPTION_NODE_CHECK (NODE)->target_option.opts)
3821#define TREE_TARGET_GLOBALS(NODE) \
3822 (TARGET_OPTION_NODE_CHECK (NODE)->target_option.globals)
3827 struct gcc_options *opts_set);
3831#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007)
3834tree_check (
tree __t,
const char *__f,
int __l,
const char *__g,
tree_code __c)
3837 tree_check_failed (__t, __f, __l, __g, __c, 0);
3842tree_not_check (
tree __t,
const char *__f,
int __l,
const char *__g,
3846 tree_not_check_failed (__t, __f, __l, __g, __c, 0);
3851tree_check2 (
tree __t,
const char *__f,
int __l,
const char *__g,
3856 tree_check_failed (__t, __f, __l, __g, __c1, __c2, 0);
3861tree_not_check2 (
tree __t,
const char *__f,
int __l,
const char *__g,
3866 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, 0);
3871tree_check3 (
tree __t,
const char *__f,
int __l,
const char *__g,
3877 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, 0);
3882tree_not_check3 (
tree __t,
const char *__f,
int __l,
const char *__g,
3888 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, 0);
3893tree_check4 (
tree __t,
const char *__f,
int __l,
const char *__g,
3901 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, 0);
3906tree_not_check4 (
tree __t,
const char *__f,
int __l,
const char *__g,
3914 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, 0);
3919tree_check5 (
tree __t,
const char *__f,
int __l,
const char *__g,
3928 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, 0);
3933tree_not_check5 (
tree __t,
const char *__f,
int __l,
const char *__g,
3942 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, 0);
3947tree_check6 (
tree __t,
const char *__f,
int __l,
const char *__g,
3957 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, __c6,
3963tree_not_check6 (
tree __t,
const char *__f,
int __l,
const char *__g,
3973 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5,
3980 const char *__f,
int __l,
const char *__g)
3983 tree_contains_struct_check_failed (__t, __s, __f, __l, __g);
3989 const char *__f,
int __l,
const char *__g)
3992 tree_class_check_failed (__t, __class, __f, __l, __g);
3997tree_range_check (
tree __t,
3999 const char *__f,
int __l,
const char *__g)
4002 tree_range_check_failed (__t, __f, __l, __g, __code1, __code2);
4008 const char *__f,
int __l,
const char *__g)
4011 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
4012 if (__t->omp_clause.code != __code)
4013 omp_clause_check_failed (__t, __f, __l, __g, __code);
4018omp_clause_range_check (
tree __t,
4021 const char *__f,
int __l,
const char *__g)
4024 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
4025 if ((
int) __t->omp_clause.code < (
int) __code1
4026 || (
int) __t->omp_clause.code > (
int) __code2)
4027 omp_clause_range_check_failed (__t, __f, __l, __g, __code1, __code2);
4034expr_check (
tree __t,
const char *__f,
int __l,
const char *__g)
4045non_type_check (
tree __t,
const char *__f,
int __l,
const char *__g)
4048 tree_not_class_check_failed (__t,
tcc_type, __f, __l, __g);
4052inline const HOST_WIDE_INT *
4053tree_int_cst_elt_check (
const_tree __t,
int __i,
4054 const char *__f,
int __l,
const char *__g)
4057 tree_check_failed (__t, __f, __l, __g, INTEGER_CST, 0);
4058 if (__i < 0 || __i >= __t->base.u.int_length.extended)
4059 tree_int_cst_elt_check_failed (__i, __t->base.u.int_length.extended,
4061 return &
const_cast<tree> (__t)->int_cst.val[__i];
4064inline HOST_WIDE_INT *
4065tree_int_cst_elt_check (
tree __t,
int __i,
4066 const char *__f,
int __l,
const char *__g)
4069 tree_check_failed (__t, __f, __l, __g, INTEGER_CST, 0);
4070 if (__i < 0 || __i >= __t->base.u.int_length.extended)
4071 tree_int_cst_elt_check_failed (__i, __t->base.u.int_length.extended,
4073 return &
const_cast<tree> (__t)->int_cst.val[__i];
4078# if GCC_VERSION >= 4006
4079#pragma GCC diagnostic push
4080#pragma GCC diagnostic ignored "-Wstrict-overflow"
4084tree_vec_elt_check (
tree __t,
int __i,
4085 const char *__f,
int __l,
const char *__g)
4088 tree_check_failed (__t, __f, __l, __g, TREE_VEC, 0);
4089 if (__i < 0 || __i >= __t->base.u.length)
4090 tree_vec_elt_check_failed (__i, __t->base.u.length, __f, __l, __g);
4091 return &
const_cast<tree> (__t)->
vec.a[__i];
4094# if GCC_VERSION >= 4006
4095#pragma GCC diagnostic pop
4099omp_clause_elt_check (
tree __t,
int __i,
4100 const char *__f,
int __l,
const char *__g)
4103 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
4105 omp_clause_operand_check_failed (__i, __t, __f, __l, __g);
4106 return &__t->omp_clause.ops[__i];
4112any_integral_type_check (
tree __t,
const char *__f,
int __l,
const char *__g)
4115 tree_check_failed (__t, __f, __l, __g, BOOLEAN_TYPE, ENUMERAL_TYPE,
4116 INTEGER_TYPE, BITINT_TYPE, 0);
4121tree_check (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4125 tree_check_failed (__t, __f, __l, __g, __c, 0);
4130tree_not_check (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4134 tree_not_check_failed (__t, __f, __l, __g, __c, 0);
4139tree_check2 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4144 tree_check_failed (__t, __f, __l, __g, __c1, __c2, 0);
4149tree_not_check2 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4154 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, 0);
4159tree_check3 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4165 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, 0);
4170tree_not_check3 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4176 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, 0);
4181tree_check4 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4189 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, 0);
4194tree_not_check4 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4202 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, 0);
4207tree_check5 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4216 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, 0);
4221tree_not_check5 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4230 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, 0);
4235tree_check6 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4245 tree_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5, __c6,
4251tree_not_check6 (
const_tree __t,
const char *__f,
int __l,
const char *__g,
4261 tree_not_check_failed (__t, __f, __l, __g, __c1, __c2, __c3, __c4, __c5,
4268 const char *__f,
int __l,
const char *__g)
4271 tree_contains_struct_check_failed (__t, __s, __f, __l, __g);
4277 const char *__f,
int __l,
const char *__g)
4280 tree_class_check_failed (__t, __class, __f, __l, __g);
4287 const char *__f,
int __l,
const char *__g)
4290 tree_range_check_failed (__t, __f, __l, __g, __code1, __code2);
4296 const char *__f,
int __l,
const char *__g)
4299 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
4300 if (__t->omp_clause.code != __code)
4301 omp_clause_check_failed (__t, __f, __l, __g, __code);
4309 const char *__f,
int __l,
const char *__g)
4312 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
4313 if ((
int) __t->omp_clause.code < (
int) __code1
4314 || (
int) __t->omp_clause.code > (
int) __code2)
4315 omp_clause_range_check_failed (__t, __f, __l, __g, __code1, __code2);
4320expr_check (
const_tree __t,
const char *__f,
int __l,
const char *__g)
4329non_type_check (
const_tree __t,
const char *__f,
int __l,
const char *__g)
4332 tree_not_class_check_failed (__t,
tcc_type, __f, __l, __g);
4336# if GCC_VERSION >= 4006
4337#pragma GCC diagnostic push
4338#pragma GCC diagnostic ignored "-Wstrict-overflow"
4343 const char *__f,
int __l,
const char *__g)
4346 tree_check_failed (__t, __f, __l, __g, TREE_VEC, 0);
4347 if (__i < 0 || __i >= __t->base.u.length)
4348 tree_vec_elt_check_failed (__i, __t->base.u.length, __f, __l, __g);
4349 return const_cast<const_tree *
> (&__t->vec.a[__i]);
4353# if GCC_VERSION >= 4006
4354#pragma GCC diagnostic pop
4358omp_clause_elt_check (
const_tree __t,
int __i,
4359 const char *__f,
int __l,
const char *__g)
4362 tree_check_failed (__t, __f, __l, __g, OMP_CLAUSE, 0);
4364 omp_clause_operand_check_failed (__i, __t, __f, __l, __g);
4365 return const_cast<const_tree *
> (&__t->omp_clause.ops[__i]);
4369any_integral_type_check (
const_tree __t,
const char *__f,
int __l,
4373 tree_check_failed (__t, __f, __l, __g, BOOLEAN_TYPE, ENUMERAL_TYPE,
4374 INTEGER_TYPE, BITINT_TYPE, 0);
4392#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007)
4396tree_operand_check (
tree __t,
int __i,
4397 const char *__f,
int __l,
const char *__g)
4401 tree_operand_check_failed (__i, __u, __f, __l, __g);
4402 return &
const_cast<tree> (__u)->
exp.operands[__i];
4406tree_operand_check_code (
tree __t,
enum tree_code __code,
int __i,
4407 const char *__f,
int __l,
const char *__g)
4410 tree_check_failed (__t, __f, __l, __g, __code, 0);
4412 tree_operand_check_failed (__i, __t, __f, __l, __g);
4413 return &__t->exp.operands[__i];
4418 const char *__f,
int __l,
const char *__g)
4422 tree_operand_check_failed (__i, __u, __f, __l, __g);
4423 return const_cast<const_tree *
> (&__u->exp.operands[__i]);
4428 const char *__f,
int __l,
const char *__g)
4431 tree_check_failed (__t, __f, __l, __g, __code, 0);
4433 tree_operand_check_failed (__i, __t, __f, __l, __g);
4434 return const_cast<const_tree *
> (&__t->exp.operands[__i]);
4459 unsigned int precision = VECTOR_TYPE_CHECK (
node)->type_common.precision;
4466 if (precision & 0x100)
4481 unsigned HOST_WIDE_INT coeff0 = subparts.
coeffs[0];
4501 unsigned HOST_WIDE_INT coeff1 = subparts.
coeffs[1];
4502 gcc_assert (coeff1 == 0 || coeff1 == coeff0);
4503 VECTOR_TYPE_CHECK (
node)->type_common.precision
4504 = index + (coeff1 != 0 ? 0x100 : 0);
4507 VECTOR_TYPE_CHECK (
node)->type_common.precision = index;
4516 unsigned HOST_WIDE_INT coeff0 = subparts.
coeffs[0];
4521 unsigned HOST_WIDE_INT coeff1 = subparts.
coeffs[1];
4522 if (coeff1 != 0 && coeff1 != coeff0)
4533 const tree_function_decl &fndecl = FUNCTION_DECL_CHECK (
decl)->function_decl;
4544 const tree_function_decl &fndecl = FUNCTION_DECL_CHECK (
decl)->function_decl;
4546 return fndecl.function_code;
4555 const tree_function_decl &fndecl = FUNCTION_DECL_CHECK (
decl)->function_decl;
4557 return fndecl.function_code;
4566 tree_function_decl &fndecl = FUNCTION_DECL_CHECK (
decl)->function_decl;
4567 fndecl.built_in_class = fclass;
4568 fndecl.function_code = fcode;
4576 tree_function_decl &newfndecl = FUNCTION_DECL_CHECK (newdecl)->function_decl;
4577 const tree_function_decl &oldfndecl
4578 = FUNCTION_DECL_CHECK (olddecl)->function_decl;
4579 newfndecl.built_in_class = oldfndecl.built_in_class;
4580 newfndecl.function_code = oldfndecl.function_code;
4587#define EXPR_LOCATION_WRAPPER_P(NODE) \
4588 (TREE_CHECK2(NODE, NON_LVALUE_EXPR, VIEW_CONVERT_EXPR)->base.public_flag)
4622#define error_mark_node global_trees[TI_ERROR_MARK]
4624#define intQI_type_node global_trees[TI_INTQI_TYPE]
4625#define intHI_type_node global_trees[TI_INTHI_TYPE]
4626#define intSI_type_node global_trees[TI_INTSI_TYPE]
4627#define intDI_type_node global_trees[TI_INTDI_TYPE]
4628#define intTI_type_node global_trees[TI_INTTI_TYPE]
4630#define unsigned_intQI_type_node global_trees[TI_UINTQI_TYPE]
4631#define unsigned_intHI_type_node global_trees[TI_UINTHI_TYPE]
4632#define unsigned_intSI_type_node global_trees[TI_UINTSI_TYPE]
4633#define unsigned_intDI_type_node global_trees[TI_UINTDI_TYPE]
4634#define unsigned_intTI_type_node global_trees[TI_UINTTI_TYPE]
4636#define atomicQI_type_node global_trees[TI_ATOMICQI_TYPE]
4637#define atomicHI_type_node global_trees[TI_ATOMICHI_TYPE]
4638#define atomicSI_type_node global_trees[TI_ATOMICSI_TYPE]
4639#define atomicDI_type_node global_trees[TI_ATOMICDI_TYPE]
4640#define atomicTI_type_node global_trees[TI_ATOMICTI_TYPE]
4642#define uint16_type_node global_trees[TI_UINT16_TYPE]
4643#define uint32_type_node global_trees[TI_UINT32_TYPE]
4644#define uint64_type_node global_trees[TI_UINT64_TYPE]
4645#define uint128_type_node global_trees[TI_UINT128_TYPE]
4647#define void_node global_trees[TI_VOID]
4649#define integer_zero_node global_trees[TI_INTEGER_ZERO]
4650#define integer_one_node global_trees[TI_INTEGER_ONE]
4651#define integer_minus_one_node global_trees[TI_INTEGER_MINUS_ONE]
4652#define size_zero_node global_trees[TI_SIZE_ZERO]
4653#define size_one_node global_trees[TI_SIZE_ONE]
4654#define bitsize_zero_node global_trees[TI_BITSIZE_ZERO]
4655#define bitsize_one_node global_trees[TI_BITSIZE_ONE]
4656#define bitsize_unit_node global_trees[TI_BITSIZE_UNIT]
4659#define access_public_node global_trees[TI_PUBLIC]
4660#define access_protected_node global_trees[TI_PROTECTED]
4661#define access_private_node global_trees[TI_PRIVATE]
4663#define null_pointer_node global_trees[TI_NULL_POINTER]
4665#define float_type_node global_trees[TI_FLOAT_TYPE]
4666#define double_type_node global_trees[TI_DOUBLE_TYPE]
4667#define long_double_type_node global_trees[TI_LONG_DOUBLE_TYPE]
4668#define bfloat16_type_node global_trees[TI_BFLOAT16_TYPE]
4671#define FLOATN_TYPE_NODE(IDX) global_trees[TI_FLOATN_TYPE_FIRST + (IDX)]
4672#define FLOATN_NX_TYPE_NODE(IDX) global_trees[TI_FLOATN_NX_TYPE_FIRST + (IDX)]
4673#define FLOATNX_TYPE_NODE(IDX) global_trees[TI_FLOATNX_TYPE_FIRST + (IDX)]
4678#define float16_type_node global_trees[TI_FLOAT16_TYPE]
4679#define float32_type_node global_trees[TI_FLOAT32_TYPE]
4680#define float64_type_node global_trees[TI_FLOAT64_TYPE]
4681#define float128_type_node global_trees[TI_FLOAT128_TYPE]
4682#define float32x_type_node global_trees[TI_FLOAT32X_TYPE]
4683#define float64x_type_node global_trees[TI_FLOAT64X_TYPE]
4684#define float128x_type_node global_trees[TI_FLOAT128X_TYPE]
4688#define float128t_type_node global_trees[TI_FLOAT128T_TYPE]
4690#define float_ptr_type_node global_trees[TI_FLOAT_PTR_TYPE]
4691#define double_ptr_type_node global_trees[TI_DOUBLE_PTR_TYPE]
4692#define long_double_ptr_type_node global_trees[TI_LONG_DOUBLE_PTR_TYPE]
4693#define integer_ptr_type_node global_trees[TI_INTEGER_PTR_TYPE]
4695#define complex_integer_type_node global_trees[TI_COMPLEX_INTEGER_TYPE]
4696#define complex_float_type_node global_trees[TI_COMPLEX_FLOAT_TYPE]
4697#define complex_double_type_node global_trees[TI_COMPLEX_DOUBLE_TYPE]
4698#define complex_long_double_type_node global_trees[TI_COMPLEX_LONG_DOUBLE_TYPE]
4700#define COMPLEX_FLOATN_NX_TYPE_NODE(IDX) global_trees[TI_COMPLEX_FLOATN_NX_TYPE_FIRST + (IDX)]
4702#define void_type_node global_trees[TI_VOID_TYPE]
4704#define ptr_type_node global_trees[TI_PTR_TYPE]
4706#define const_ptr_type_node global_trees[TI_CONST_PTR_TYPE]
4708#define size_type_node global_trees[TI_SIZE_TYPE]
4709#define pid_type_node global_trees[TI_PID_TYPE]
4710#define ptrdiff_type_node global_trees[TI_PTRDIFF_TYPE]
4711#define va_list_type_node global_trees[TI_VA_LIST_TYPE]
4712#define va_list_gpr_counter_field global_trees[TI_VA_LIST_GPR_COUNTER_FIELD]
4713#define va_list_fpr_counter_field global_trees[TI_VA_LIST_FPR_COUNTER_FIELD]
4715#define fileptr_type_node global_trees[TI_FILEPTR_TYPE]
4717#define const_tm_ptr_type_node global_trees[TI_CONST_TM_PTR_TYPE]
4719#define fenv_t_ptr_type_node global_trees[TI_FENV_T_PTR_TYPE]
4720#define const_fenv_t_ptr_type_node global_trees[TI_CONST_FENV_T_PTR_TYPE]
4722#define fexcept_t_ptr_type_node global_trees[TI_FEXCEPT_T_PTR_TYPE]
4723#define const_fexcept_t_ptr_type_node global_trees[TI_CONST_FEXCEPT_T_PTR_TYPE]
4724#define pointer_sized_int_node global_trees[TI_POINTER_SIZED_TYPE]
4726#define boolean_type_node global_trees[TI_BOOLEAN_TYPE]
4727#define boolean_false_node global_trees[TI_BOOLEAN_FALSE]
4728#define boolean_true_node global_trees[TI_BOOLEAN_TRUE]
4731#define dfloat32_type_node global_trees[TI_DFLOAT32_TYPE]
4732#define dfloat64_type_node global_trees[TI_DFLOAT64_TYPE]
4733#define dfloat128_type_node global_trees[TI_DFLOAT128_TYPE]
4734#define dfloat64x_type_node global_trees[TI_DFLOAT64X_TYPE]
4737#define sat_short_fract_type_node global_trees[TI_SAT_SFRACT_TYPE]
4738#define sat_fract_type_node global_trees[TI_SAT_FRACT_TYPE]
4739#define sat_long_fract_type_node global_trees[TI_SAT_LFRACT_TYPE]
4740#define sat_long_long_fract_type_node global_trees[TI_SAT_LLFRACT_TYPE]
4741#define sat_unsigned_short_fract_type_node \
4742 global_trees[TI_SAT_USFRACT_TYPE]
4743#define sat_unsigned_fract_type_node global_trees[TI_SAT_UFRACT_TYPE]
4744#define sat_unsigned_long_fract_type_node \
4745 global_trees[TI_SAT_ULFRACT_TYPE]
4746#define sat_unsigned_long_long_fract_type_node \
4747 global_trees[TI_SAT_ULLFRACT_TYPE]
4748#define short_fract_type_node global_trees[TI_SFRACT_TYPE]
4749#define fract_type_node global_trees[TI_FRACT_TYPE]
4750#define long_fract_type_node global_trees[TI_LFRACT_TYPE]
4751#define long_long_fract_type_node global_trees[TI_LLFRACT_TYPE]
4752#define unsigned_short_fract_type_node global_trees[TI_USFRACT_TYPE]
4753#define unsigned_fract_type_node global_trees[TI_UFRACT_TYPE]
4754#define unsigned_long_fract_type_node global_trees[TI_ULFRACT_TYPE]
4755#define unsigned_long_long_fract_type_node \
4756 global_trees[TI_ULLFRACT_TYPE]
4757#define sat_short_accum_type_node global_trees[TI_SAT_SACCUM_TYPE]
4758#define sat_accum_type_node global_trees[TI_SAT_ACCUM_TYPE]
4759#define sat_long_accum_type_node global_trees[TI_SAT_LACCUM_TYPE]
4760#define sat_long_long_accum_type_node global_trees[TI_SAT_LLACCUM_TYPE]
4761#define sat_unsigned_short_accum_type_node \
4762 global_trees[TI_SAT_USACCUM_TYPE]
4763#define sat_unsigned_accum_type_node global_trees[TI_SAT_UACCUM_TYPE]
4764#define sat_unsigned_long_accum_type_node \
4765 global_trees[TI_SAT_ULACCUM_TYPE]
4766#define sat_unsigned_long_long_accum_type_node \
4767 global_trees[TI_SAT_ULLACCUM_TYPE]
4768#define short_accum_type_node global_trees[TI_SACCUM_TYPE]
4769#define accum_type_node global_trees[TI_ACCUM_TYPE]
4770#define long_accum_type_node global_trees[TI_LACCUM_TYPE]
4771#define long_long_accum_type_node global_trees[TI_LLACCUM_TYPE]
4772#define unsigned_short_accum_type_node global_trees[TI_USACCUM_TYPE]
4773#define unsigned_accum_type_node global_trees[TI_UACCUM_TYPE]
4774#define unsigned_long_accum_type_node global_trees[TI_ULACCUM_TYPE]
4775#define unsigned_long_long_accum_type_node \
4776 global_trees[TI_ULLACCUM_TYPE]
4777#define qq_type_node global_trees[TI_QQ_TYPE]
4778#define hq_type_node global_trees[TI_HQ_TYPE]
4779#define sq_type_node global_trees[TI_SQ_TYPE]
4780#define dq_type_node global_trees[TI_DQ_TYPE]
4781#define tq_type_node global_trees[TI_TQ_TYPE]
4782#define uqq_type_node global_trees[TI_UQQ_TYPE]
4783#define uhq_type_node global_trees[TI_UHQ_TYPE]
4784#define usq_type_node global_trees[TI_USQ_TYPE]
4785#define udq_type_node global_trees[TI_UDQ_TYPE]
4786#define utq_type_node global_trees[TI_UTQ_TYPE]
4787#define sat_qq_type_node global_trees[TI_SAT_QQ_TYPE]
4788#define sat_hq_type_node global_trees[TI_SAT_HQ_TYPE]
4789#define sat_sq_type_node global_trees[TI_SAT_SQ_TYPE]
4790#define sat_dq_type_node global_trees[TI_SAT_DQ_TYPE]
4791#define sat_tq_type_node global_trees[TI_SAT_TQ_TYPE]
4792#define sat_uqq_type_node global_trees[TI_SAT_UQQ_TYPE]
4793#define sat_uhq_type_node global_trees[TI_SAT_UHQ_TYPE]
4794#define sat_usq_type_node global_trees[TI_SAT_USQ_TYPE]
4795#define sat_udq_type_node global_trees[TI_SAT_UDQ_TYPE]
4796#define sat_utq_type_node global_trees[TI_SAT_UTQ_TYPE]
4797#define ha_type_node global_trees[TI_HA_TYPE]
4798#define sa_type_node global_trees[TI_SA_TYPE]
4799#define da_type_node global_trees[TI_DA_TYPE]
4800#define ta_type_node global_trees[TI_TA_TYPE]
4801#define uha_type_node global_trees[TI_UHA_TYPE]
4802#define usa_type_node global_trees[TI_USA_TYPE]
4803#define uda_type_node global_trees[TI_UDA_TYPE]
4804#define uta_type_node global_trees[TI_UTA_TYPE]
4805#define sat_ha_type_node global_trees[TI_SAT_HA_TYPE]
4806#define sat_sa_type_node global_trees[TI_SAT_SA_TYPE]
4807#define sat_da_type_node global_trees[TI_SAT_DA_TYPE]
4808#define sat_ta_type_node global_trees[TI_SAT_TA_TYPE]
4809#define sat_uha_type_node global_trees[TI_SAT_UHA_TYPE]
4810#define sat_usa_type_node global_trees[TI_SAT_USA_TYPE]
4811#define sat_uda_type_node global_trees[TI_SAT_UDA_TYPE]
4812#define sat_uta_type_node global_trees[TI_SAT_UTA_TYPE]
4819#define void_list_node global_trees[TI_VOID_LIST_NODE]
4821#define main_identifier_node global_trees[TI_MAIN_IDENTIFIER]
4822#define MAIN_NAME_P(NODE) \
4823 (IDENTIFIER_NODE_CHECK (NODE) == main_identifier_node)
4827#define optimization_default_node global_trees[TI_OPTIMIZATION_DEFAULT]
4828#define optimization_current_node global_trees[TI_OPTIMIZATION_CURRENT]
4831#define target_option_default_node global_trees[TI_TARGET_OPTION_DEFAULT]
4832#define target_option_current_node global_trees[TI_TARGET_OPTION_CURRENT]
4836#define current_target_pragma global_trees[TI_CURRENT_TARGET_PRAGMA]
4837#define current_optimize_pragma global_trees[TI_CURRENT_OPTIMIZE_PRAGMA]
4840#define chrec_not_analyzed_yet NULL_TREE
4841#define chrec_dont_know global_trees[TI_CHREC_DONT_KNOW]
4842#define chrec_known global_trees[TI_CHREC_KNOWN]
4844#define char_type_node integer_types[itk_char]
4845#define signed_char_type_node integer_types[itk_signed_char]
4846#define unsigned_char_type_node integer_types[itk_unsigned_char]
4847#define short_integer_type_node integer_types[itk_short]
4848#define short_unsigned_type_node integer_types[itk_unsigned_short]
4849#define integer_type_node integer_types[itk_int]
4850#define unsigned_type_node integer_types[itk_unsigned_int]
4851#define long_integer_type_node integer_types[itk_long]
4852#define long_unsigned_type_node integer_types[itk_unsigned_long]
4853#define long_long_integer_type_node integer_types[itk_long_long]
4854#define long_long_unsigned_type_node integer_types[itk_unsigned_long_long]
5076template <
typename ...T>
5079 std::initializer_list<tree> args_ = {args...};
5083#define build_call_array(T1,T2,N,T3)\
5084 build_call_array_loc (UNKNOWN_LOCATION, T1, T2, N, T3)
5135#define build_function_type_vec(RET, V) \
5136 build_function_type_array (RET, vec_safe_length (V), vec_safe_address (V))
5137#define build_varargs_function_type_vec(RET, V) \
5138 build_varargs_function_type_array (RET, vec_safe_length (V), \
5139 vec_safe_address (V))
5164 ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE;
5166 ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE;
5168 ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE;
5170 ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE;
5172 ATTRIBUTE_NONNULL (1) ATTRIBUTE_PURE;
5173#if !defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 4003)
5174extern inline __attribute__ ((__gnu_inline__)) HOST_WIDE_INT
5181extern inline __attribute__ ((__gnu_inline__))
unsigned HOST_WIDE_INT
5187#if NUM_POLY_INT_COEFFS == 1
5188extern inline __attribute__ ((__gnu_inline__))
poly_int64
5195extern inline __attribute__ ((__gnu_inline__))
poly_uint64
5312#define build_type_variant(TYPE, CONST_P, VOLATILE_P) \
5313 build_qualified_type ((TYPE), \
5314 ((CONST_P) ? TYPE_QUAL_CONST : 0) \
5315 | ((VOLATILE_P) ? TYPE_QUAL_VOLATILE : 0))
5346#define sizetype sizetype_tab[(int) stk_sizetype]
5347#define bitsizetype sizetype_tab[(int) stk_bitsizetype]
5348#define ssizetype sizetype_tab[(int) stk_ssizetype]
5349#define sbitsizetype sizetype_tab[(int) stk_sbitsizetype]
5350#define size_int(L) size_int_kind (L, stk_sizetype)
5351#define ssize_int(L) size_int_kind (L, stk_ssizetype)
5352#define bitsize_int(L) size_int_kind (L, stk_bitsizetype)
5353#define sbitsize_int(L) size_int_kind (L, stk_sbitsizetype)
5357#if BITS_PER_UNIT == 8
5358#define LOG2_BITS_PER_UNIT 3
5359#elif BITS_PER_UNIT == 16
5360#define LOG2_BITS_PER_UNIT 4
5362#error Unknown BITS_PER_UNIT
5527#define CONTAINS_PLACEHOLDER_P(EXP) \
5528 ((EXP) != 0 && ! TREE_CONSTANT (EXP) && contains_placeholder_p (EXP))
5548#define FIND_PLACEHOLDER_IN_EXPR(EXP, V) \
5550 if((EXP) && !TREE_CONSTANT (EXP)) \
5551 find_placeholder_in_expr (EXP, V); \
5566#define SUBSTITUTE_IN_EXPR(EXP, F, R) \
5567 ((EXP) == 0 || TREE_CONSTANT (EXP) ? (EXP) : substitute_in_expr (EXP, F, R))
5577#define SUBSTITUTE_PLACEHOLDER_IN_EXPR(EXP, OBJ) \
5578 ((EXP) == 0 || TREE_CONSTANT (EXP) ? (EXP) \
5579 : substitute_placeholder_in_expr (EXP, OBJ))
5612 case ARRAY_RANGE_REF:
5615 case VIEW_CONVERT_EXPR:
5650 case ARRAY_RANGE_REF:
5651 case VIEW_CONVERT_EXPR:
5753#define FOREACH_FUNCTION_ARGS_PTR(FNTYPE, PTR, ITER) \
5754 for (function_args_iter_init (&(ITER), (FNTYPE)); \
5755 (PTR = function_args_iter_cond_ptr (&(ITER))) != NULL; \
5756 function_args_iter_next (&(ITER)))
5761#define FOREACH_FUNCTION_ARGS(FNTYPE, TREE, ITER) \
5762 for (function_args_iter_init (&(ITER), (FNTYPE)); \
5763 (TREE = function_args_iter_cond (&(ITER))) != NULL_TREE; \
5764 function_args_iter_next (&(ITER)))
5837 const void *
const * x = (
const void *
const *)
a;
5838 const void *
const *
y = (
const void *
const *)
b;
5845 const void *
const * x = (
const void *
const *)
a;
5846 return (intptr_t)*x >> 4;
5859 return code == TRUNC_DIV_EXPR || code == EXACT_DIV_EXPR;
5866 switch (code.get_rep())
5868 case TRUNC_DIV_EXPR:
5870 case FLOOR_DIV_EXPR:
5871 case ROUND_DIV_EXPR:
5872 case EXACT_DIV_EXPR:
5873 case TRUNC_MOD_EXPR:
5874 case FLOOR_MOD_EXPR:
5876 case ROUND_MOD_EXPR:
5888 || code == TRUTH_AND_EXPR || code == TRUTH_ANDIF_EXPR
5889 || code == TRUTH_OR_EXPR || code == TRUTH_ORIF_EXPR
5890 || code == TRUTH_XOR_EXPR || code == TRUTH_NOT_EXPR);
5946 ATTRIBUTE_NONNULL (1) ATTRIBUTE_NONNULL (2) ATTRIBUTE_PURE;
5947#ifndef GENERATOR_FILE
5969 return hstate.
end ();
6014#define walk_tree(a,b,c,d) \
6015 walk_tree_1 (a, b, c, d, NULL)
6016#define walk_tree_without_duplicates(a,b,c) \
6017 walk_tree_without_duplicates_1 (a, b, c, NULL)
6084 bool trust_type_canonical =
true);
6106 if (code == ENUMERAL_TYPE)
6107 return INTEGER_TYPE;
6113 if (code == REFERENCE_TYPE)
6114 return POINTER_TYPE;
6145#define tree_map_eq tree_map_base_eq
6147#define tree_map_marked_p tree_map_base_marked_p
6149#define tree_decl_map_eq tree_map_base_eq
6151#define tree_decl_map_marked_p tree_map_base_marked_p
6169#define tree_int_map_eq tree_map_base_eq
6170#define tree_int_map_hash tree_map_base_hash
6171#define tree_int_map_marked_p tree_map_base_marked_p
6173#define tree_vec_map_eq tree_map_base_eq
6174#define tree_vec_map_hash tree_decl_map_hash
6175#define tree_vec_map_marked_p tree_map_base_marked_p
6179 static hashval_t
hash (tree_vec_map *m) {
return DECL_UID (m->base.from); }
6184 return a->base.from ==
b->base.from;
6199 static inline hashval_t
hash (
tree);
6211 static inline hashval_t
hash (
tree);
6225 static inline hashval_t
hash (
tree);
6249struct tree_cache_traits
6255struct decl_tree_cache_traits
6261struct type_tree_cache_traits
6266struct decl_tree_traits
6273init_call_expr_arg_iterator (
tree exp, call_expr_arg_iterator *iter)
6281init_const_call_expr_arg_iterator (
const_tree exp, const_call_expr_arg_iterator *iter)
6291next_call_expr_arg (call_expr_arg_iterator *iter)
6294 if (iter->i >= iter->n)
6302next_const_call_expr_arg (const_call_expr_arg_iterator *iter)
6305 if (iter->i >= iter->n)
6319 init_call_expr_arg_iterator (
exp, iter);
6320 return next_call_expr_arg (iter);
6326 init_const_call_expr_arg_iterator (
exp, iter);
6327 return next_const_call_expr_arg (iter);
6335 return (iter->i < iter->n);
6340#define FOR_EACH_CALL_EXPR_ARG(arg, iter, call) \
6341 for ((arg) = first_call_expr_arg ((call), &(iter)); (arg); \
6342 (arg) = next_call_expr_arg (&(iter)))
6344#define FOR_EACH_CONST_CALL_EXPR_ARG(arg, iter, call) \
6345 for ((arg) = first_const_call_expr_arg ((call), &(iter)); (arg); \
6346 (arg) = next_const_call_expr_arg (&(iter)))
6356#define BUILTIN_VALID_P(FNCODE) \
6357 (IN_RANGE ((int)FNCODE, ((int)BUILT_IN_NONE) + 1, ((int) END_BUILTINS) - 1))
6363#define BUILTIN_ASM_NAME_PTR(BUILTIN) \
6364 (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (builtin_decl_explicit (BUILTIN))))
6379 size_t uns_fncode = (size_t)fncode;
6399 size_t ufncode = (size_t)fncode;
6414 size_t uns_fncode = (size_t)fncode;
6427 size_t uns_fncode = (size_t)fncode;
6450 size_t uns_fncode = (size_t)fncode;
6462 size_t uns_fncode = (size_t)fncode;
6521inline struct cl_optimization *
6531inline cl_target_option *
6542#define opt_for_fn(fndecl, opt) (opts_for_fn (fndecl)->x_##opt)
6564 unsigned int get_len ()
const;
6572 static const bool host_dependent_precision =
false;
6573 static const bool is_sign_extended =
false;
6574 static const bool needs_write_val_arg =
false;
6588 const HOST_WIDE_INT *
get_val ()
const;
6589 unsigned int get_len ()
const;
6598 static const bool host_dependent_precision =
false;
6599 static const bool is_sign_extended =
true;
6600 static const bool needs_write_val_arg =
false;
6609 typedef const generic_wide_int<wide_int_ref_storage<false, false> >
6618 generic_wide_int <widest_extended_tree> >
6621 generic_wide_int <offset_extended_tree> >
6624 generic_wide_int <unextended_tree> >
6634 typedef generic_wide_int <extended_tree <N> > extended;
6635 static extended
zero (
const extended &);
6641 typedef generic_wide_int <extended_tree <N> > extended;
6642 static extended
zero (
const extended &);
6648 typedef generic_wide_int <unextended_tree> unextended;
6649 static unextended
zero (
const unextended &);
6655typedef generic_wide_int <wi::extended_tree <WIDEST_INT_MAX_PRECISION * 2> >
6779inline const HOST_WIDE_INT *
6814inline const HOST_WIDE_INT *
6831 poly_int <NUM_POLY_INT_COEFFS, generic_wide_int <wi::unextended_tree> > res;
6846 generic_wide_int <widest_extended_tree> > res;
6863 generic_wide_int <offset_extended_tree> > res;
6883inline generic_wide_int <wi::extended_tree <N> >
6884wi::ints_for <generic_wide_int <wi::extended_tree <N> >,
6891inline generic_wide_int <wi::extended_tree <N> >
6892wi::ints_for <generic_wide_int <wi::extended_tree <N> >,
6898inline generic_wide_int <wi::unextended_tree>
6899wi::ints_for <generic_wide_int <wi::unextended_tree>,
6907 template <
typename T>
6910 template <
typename T>
6915#ifndef GENERATOR_FILE
6920template <
typename T>
6929template <
typename T>
7001 tree *, machine_mode *,
int *,
int *,
int *);
7086class builtin_structptr_type
7108 return name0 == name1;
7113template <
typename... F>
7155template <
typename... F>
7205 location_t m_operator_loc;
7206 location_t m_combined_loc;
7215 op_location_t (location_t operator_loc, location_t combined_loc)
7216 : m_operator_loc (operator_loc), m_combined_loc (combined_loc)
7220 operator location_t ()
const {
return m_combined_loc; }
7247 ATTRIBUTE_NONNULL (1);
void gt_pch_nx(bbitmap< N > *)
Definition bbitmap.h:226
void gt_ggc_mx(bbitmap< N > *)
Definition bbitmap.h:220
auto_suppress_location_wrappers()
Definition tree.h:1408
~auto_suppress_location_wrappers()
Definition tree.h:1409
tree & base
Definition tree.h:7021
const char * str
Definition tree.h:7022
code_helper(tree_code code)
Definition tree.h:85
tree_code safe_as_tree_code() const
Definition tree.h:113
bool is_internal_fn() const
Definition tree.h:138
code_helper()
Definition tree.h:84
bool operator!=(const code_helper &other)
Definition tree.h:100
code_helper(internal_fn fn)
Definition tree.h:87
bool is_fn_code() const
Definition tree.h:93
bool operator==(const code_helper &other)
Definition tree.h:99
int rep
Definition tree.h:105
code_helper(combined_fn fn)
Definition tree.h:86
int get_rep() const
Definition tree.h:96
bool is_tree_code() const
Definition tree.h:92
bool is_builtin_fn() const
Definition tree.h:144
combined_fn safe_as_fn_code() const
Definition tree.h:123
Definition genmatch.cc:1625
Definition wide-int.h:776
hashval_t end() const
Definition inchash.h:49
op_location_t(location_t operator_loc, location_t combined_loc)
Definition tree.h:7146
op_location_t(location_t combined_loc)
Definition tree.h:7140
location_t m_operator_loc
Definition tree.h:7136
location_t m_combined_loc
Definition tree.h:7137
Definition poly-int.h:378
C coeffs[N]
Definition poly-int.h:433
tree * end()
Definition tree.h:4944
tree v
Definition tree.h:4940
tree_vec_range(tree v)
Definition tree.h:4942
tree * begin()
Definition tree.h:4943
unsigned int get_precision() const
Definition tree.h:6704
const_tree m_t
Definition tree.h:6512
extended_tree(const_tree)
Definition tree.h:6696
const_tree get_tree() const
Definition tree.h:6521
extended_tree()
Definition tree.h:6515
const HOST_WIDE_INT * get_val() const
Definition tree.h:6711
unsigned int get_len() const
Definition tree.h:6718
Definition wide-int.h:707
const_tree get_tree() const
Definition tree.h:6496
unextended_tree()
Definition tree.h:6490
unsigned int get_len() const
Definition tree.h:6752
unextended_tree(const_tree t)
Definition tree.h:6491
unsigned int get_precision() const
Definition tree.h:6740
const HOST_WIDE_INT * get_val() const
Definition tree.h:6746
const_tree m_t
Definition tree.h:6487
static wide_int from(const wide_int_ref &, unsigned int, signop)
Definition wide-int.h:1289
struct rtx_def * rtx
Definition coretypes.h:57
tls_model
Definition coretypes.h:215
excess_precision_type
Definition coretypes.h:446
const union tree_node * const_tree
Definition coretypes.h:98
#define GTY(x)
Definition coretypes.h:41
class bitmap_head * bitmap
Definition coretypes.h:51
union tree_node * tree
Definition coretypes.h:97
void(*) gt_pointer_operator(void *, void *, void *)
Definition coretypes.h:469
void ATTRIBUTE_NORETURN
Definition diagnostic-core.h:76
scalar_int_mode word_mode
Definition emit-rtl.cc:78
void set_decl_rtl(tree t, rtx x)
Definition emit-rtl.cc:1462
tree make_tree(tree type, rtx x)
Definition expmed.cc:5544
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:8522
bool complete_ctor_at_level_p(const_tree type, HOST_WIDE_INT num_elts, const_tree last_type)
Definition expr.cc:7384
tree build_personality_function(const char *lang)
Definition expr.cc:14455
uint64_t sanitize_code_type
Definition flag-types.h:359
tree protected_set_expr_location_unshare(tree x, location_t loc)
Definition fold-const.cc:296
void copy_warning(location_t to, location_t from)
Definition gcc-diagnostic-spec.cc:205
bool warning_suppressed_at(location_t loc, opt_code opt)
Definition gcc-diagnostic-spec.cc:125
bool suppress_warning_at(location_t loc, opt_code opt, bool supp)
Definition gcc-diagnostic-spec.cc:148
void put_warning_spec_at(location_t loc, unsigned bits)
Definition gcc-diagnostic-spec.cc:184
built_in_function
Definition genmatch.cc:1018
combined_fn
Definition genmatch.cc:1029
bool commutative_ternary_tree_code(enum tree_code code)
Definition genmatch.cc:1083
internal_fn
Definition genmatch.cc:1024
tree_code
Definition genmatch.cc:1011
bool commutative_tree_code(enum tree_code code)
Definition genmatch.cc:1046
#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:1681
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
tree obj_type_ref_class(const_tree ref, bool for_dump_p)
Definition ipa-devirt.cc:1987
bool types_same_for_odr(const_tree type1, const_tree type2)
Definition ipa-devirt.cc:437
bool int_n_enabled_p[NUM_INT_N_ENTS]
Definition tree.cc:291
ALWAYS_INLINE poly_uint16 GET_MODE_PRECISION(machine_mode mode)
Definition machmode.h:710
Definition custom-sarif-properties/state-graphs.h:33
Definition fold-const.cc:4365
void add_expr(const_tree t, inchash::hash &hstate, unsigned int flags)
Definition fold-const.cc:4373
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:2379
const poly_int< NUM_POLY_INT_COEFFS, generic_wide_int< unextended_tree > > tree_to_poly_wide_ref
Definition tree.h:6556
tree_to_offset_ref to_offset(const_tree)
Definition tree.h:6649
tree_to_poly_offset_ref to_poly_offset(const_tree)
Definition tree.h:6789
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:6538
UNARY_FUNCTION zext(const T &, unsigned int)
extended_tree< ADDR_MAX_PRECISION > offset_extended_tree
Definition tree.h:6536
tree_to_poly_widest_ref to_poly_widest(const_tree)
Definition tree.h:6772
bool fits_to_tree_p(const T &x, const_tree)
Definition tree.h:6862
const generic_wide_int< wide_int_ref_storage< false, false > > tree_to_wide_ref
Definition tree.h:6541
const generic_wide_int< offset_extended_tree > tree_to_offset_ref
Definition tree.h:6539
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:6553
unsigned int get_precision(const T &)
Definition wide-int.h:2166
tree_to_widest_ref to_widest(const_tree)
Definition tree.h:6624
rtx_to_poly_wide_ref to_poly_wide(const_rtx, machine_mode)
Definition rtl.h:2424
Ca unsigned int precision
Definition poly-int.h:746
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:6853
wide_int max_value(machine_mode, signop)
Definition rtl.h:2387
extended_tree< WIDEST_INT_MAX_PRECISION > widest_extended_tree
Definition tree.h:6535
tree_to_wide_ref to_wide(const_tree)
Definition tree.h:6679
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:6550
i
Definition poly-int.h:750
poly_int< NUM_POLY_INT_COEFFS, unsigned HOST_WIDE_INT > poly_uint64
Definition poly-int-types.h:25
poly_int< NUM_POLY_INT_COEFFS, wide_int_ref > poly_wide_int_ref
Definition poly-int-types.h:28
poly_int< NUM_POLY_INT_COEFFS, HOST_WIDE_INT > poly_int64
Definition poly-int-types.h:24
i
Definition poly-int.h:776
Ca const poly_int< N, Cb > & b
Definition poly-int.h:771
Ca & a
Definition poly-int.h:770
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:91
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:6938
tree unsigned_type
Definition tree.h:6939
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:6203
static bool equal(tree_decl_map *a, tree_decl_map *b)
Definition tree.h:6157
static hashval_t hash(tree_decl_map *m)
Definition tree.h:6155
static int keep_cache_entry(tree_decl_map *&m)
Definition tree.h:6163
static hashval_t hash(tree)
Definition tree.h:6241
Definition tree-core.h:1610
static hashval_t hash(tree)
Definition tree.h:6229
static hashval_t hash(tree)
Definition tree.h:6215
static hashval_t hash(tree_vec_map *m)
Definition tree.h:6179
static bool equal(tree_vec_map *a, tree_vec_map *b)
Definition tree.h:6182
static int keep_cache_entry(tree_vec_map *&m)
Definition tree.h:6188
Definition gengtype.h:252
static const bool is_sign_extended
Definition tree.h:6530
static const unsigned int precision
Definition tree.h:6532
static const bool needs_write_val_arg
Definition tree.h:6531
static const bool host_dependent_precision
Definition tree.h:6529
static enum precision_type precision_type
Definition tree.h:6528
static enum precision_type precision_type
Definition tree.h:6502
static const bool is_sign_extended
Definition tree.h:6504
static const bool needs_write_val_arg
Definition tree.h:6505
static const bool host_dependent_precision
Definition tree.h:6503
Definition wide-int.h:427
generic_wide_int< extended_tree< N > > extended
Definition tree.h:6572
static extended zero(const extended &)
static extended zero(const extended &)
generic_wide_int< extended_tree< N > > extended
Definition tree.h:6565
generic_wide_int< unextended_tree > unextended
Definition tree.h:6579
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:58
#define gcc_assert(EXPR)
Definition system.h:819
#define gcc_unreachable()
Definition system.h:846
#define true
Definition system.h:892
#define WARN_UNUSED_RESULT
Definition system.h:838
#define STATIC_ASSERT(X)
Definition system.h:869
#define DEBUG_FUNCTION
Definition system.h:1192
#define gcc_checking_assert(EXPR)
Definition system.h:826
@ END_BUILTINS
Definition tree-core.h:3619
tree(*) walk_tree_fn(tree *, int *, void *)
Definition tree-core.h:1120
omp_clause_code
Definition tree-core.h:256
built_in_class
Definition tree-core.h:173
@ NOT_BUILT_IN
Definition tree-core.h:174
@ BUILT_IN_FRONTEND
Definition tree-core.h:175
@ BUILT_IN_NORMAL
Definition tree-core.h:177
@ BUILT_IN_MD
Definition tree-core.h:176
tree_code_class
Definition tree-core.h:232
@ tcc_comparison
Definition tree-core.h:239
@ tcc_expression
Definition tree-core.h:246
@ tcc_type
Definition tree-core.h:236
tree_node_structure_enum
Definition tree-core.h:621
unsigned short priority_type
Definition tree-core.h:1117
tree(*) walk_tree_lh(tree *, int *, tree(*)(tree *, int *, void *), void *, hash_set< tree > *)
Definition tree-core.h:1123
@ MAX_TREE_CODES
Definition tree-core.h:157
clobber_kind
Definition tree-core.h:1089
@ CLOBBER_UNDEF
Definition tree-core.h:1091
#define NUM_TREE_CODES
Definition tree-core.h:164
void using_eh_for_cleanups(void)
Definition tree.cc:13195
static bool valid_new_delete_pair_p(gimple *new_call, gimple *delete_call)
Definition tree-ssa-dce.cc:848
tree tree_cons(tree purpose, tree value, tree chain MEM_STAT_DECL)
Definition tree.cc:3719
unsigned int element_precision(const_tree type)
Definition tree.cc:7055
bool type_contains_placeholder_p(tree type)
Definition tree.cc:4469
tree size_in_bytes_loc(location_t loc, const_tree type)
Definition tree.cc:3759
tree reconstruct_complex_type(tree type, tree bottom)
Definition tree.cc:10448
int suppress_location_wrappers
Definition tree.cc:15171
void overwrite_decl_assembler_name(tree decl, tree name)
Definition tree.cc:866
tree grow_tree_vec(tree v, int len MEM_STAT_DECL)
Definition tree.cc:2968
bool check_lang_type(const_tree cand, const_tree base)
Definition tree.cc:5720
bool disjoint_version_decls(tree fn1, tree fn2)
Definition tree.cc:15775
tree build_tree_list(tree parm, tree value MEM_STAT_DECL)
Definition tree.cc:3689
tree build_function_type_array(tree return_type, int n, tree *arg_types)
Definition tree.cc:7907
tree build_variant_type_copy(tree type MEM_STAT_DECL)
Definition tree.cc:5971
bool stdarg_p(const_tree fntype)
Definition tree.cc:12210
tree first_field(const_tree type)
Definition tree.cc:3598
tree get_qualified_type(tree type, int type_quals)
Definition tree.cc:5833
tree build_reference_type_for_mode(tree to_type, machine_mode mode, bool can_alias_all)
Definition tree.cc:7295
int compare_tree_int(const_tree t, unsigned HOST_WIDE_INT u)
Definition tree.cc:6986
tree make_anon_name()
Definition tree.cc:9104
bool integer_onep(const_tree expr)
Definition tree.cc:3026
tree num_ending_zeros(const_tree x)
Definition tree.cc:11742
tree uniform_integer_cst_p(tree t)
Definition tree.cc:10922
tree skip_simple_arithmetic(tree expr)
Definition tree.cc:4198
string_slice get_target_version(const tree decl)
Definition tree.cc:15753
tree decl_value_expr_lookup(tree from)
Definition tree.cc:6153
tree build_call_expr_loc_vec(location_t loc, tree fndecl, vec< tree, va_gc > *vec)
Definition tree.cc:11273
tree decl_comdat_group(const_tree node)
Definition tree.cc:983
int allocate_decl_uid(void)
Definition tree.cc:1313
tree decl_debug_expr_lookup(tree from)
Definition tree.cc:6126
priority_type decl_fini_priority_lookup(tree decl)
Definition tree.cc:6051
tree staticp(tree arg)
Definition tree.cc:3915
const char * prefix_for_internal_label(tree label)
Definition tree.cc:841
const char * get_name(tree t)
Definition tree.cc:12180
void decl_fini_priority_insert(tree decl, priority_type priority)
Definition tree.cc:6084
tree build_constructor_from_vec(tree type, const vec< tree, va_gc > *vals)
Definition tree.cc:2450
tree maybe_build_call_expr_loc(location_t loc, combined_fn fn, tree type, int n,...)
Definition tree.cc:11358
bool warn_deprecated_use(tree node, tree attr)
Definition tree.cc:12870
tree build_complex_inf(tree type, bool neg)
Definition tree.cc:2665
bool is_access_with_size_p(const_tree call)
Definition tree.cc:13842
bool variably_modified_type_p(tree type, tree fn)
Definition tree.cc:8627
tree block_ultimate_origin(const_tree block)
Definition tree.cc:12440
bool integer_pow2p(const_tree expr)
Definition tree.cc:3107
tree build_call_expr_loc(location_t loc, tree fndecl, int n,...)
Definition tree.cc:11285
machine_mode vector_type_mode(const_tree t)
Definition tree.cc:13885
bool fixed_zerop(const_tree expr)
Definition tree.cc:3157
bool find_tree(tree top, tree search)
Definition tree.cc:15480
tree decl_comdat_group_id(const_tree node)
Definition tree.cc:993
bool tree_int_cst_equal(const_tree t1, const_tree t2)
Definition tree.cc:6609
bool decl_address_ip_invariant_p(const_tree op)
Definition tree.cc:4023
int tree_log2(const_tree expr)
Definition tree.cc:3169
tree build_constructor(tree type, vec< constructor_elt, va_gc > *vals MEM_STAT_DECL)
Definition tree.cc:2400
unsigned int vector_element_bits(const_tree type)
Definition tree.cc:13918
tree build_nonstandard_integer_type(unsigned HOST_WIDE_INT precision, int unsignedp)
Definition tree.cc:7381
tree build_truth_vector_type_for_mode(poly_uint64 nunits, machine_mode mask_mode)
Definition tree.cc:10544
tree build_int_cstu(tree type, poly_uint64 cst)
Definition tree.cc:1658
tree create_artificial_label(location_t loc)
Definition tree.cc:12164
tree make_node(enum tree_code code MEM_STAT_DECL)
Definition tree.cc:1327
tree get_narrower(tree op, int *unsignedp_ptr)
Definition tree.cc:8335
tree array_ref_low_bound(tree exp)
Definition tree.cc:13328
tree build_int_cst_type(tree type, poly_int64 cst)
Definition tree.cc:1666
vec< tree, va_gc > ** decl_debug_args_insert(tree from)
Definition tree.cc:6202
tree build_index_vector(tree vec_type, poly_uint64 base, poly_uint64 step)
Definition tree.cc:2313
bool vector_nop_conversion_p(const_tree outer_type, const_tree inner_type)
Definition tree.cc:12514
tree build2(enum tree_code code, tree tt, tree arg0, tree arg1 MEM_STAT_DECL)
Definition tree.cc:5298
tree build1(enum tree_code code, tree type, tree node MEM_STAT_DECL)
Definition tree.cc:5219
tree build_opaque_vector_type(tree innertype, poly_int64 nunits)
Definition tree.cc:10588
bool real_onep(const_tree expr)
Definition tree.cc:3361
tree build_constructor_va(tree type, int nelts,...)
Definition tree.cc:2464
unsigned int tree_decl_map_hash(const void *item)
Definition tree.cc:6030
tree nreverse(tree t)
Definition tree.cc:3670
bool operand_equal_for_phi_arg_p(const_tree arg0, const_tree arg1)
Definition tree.cc:11730
bool subrange_type_for_debug_p(const_tree type, tree *lowval, tree *highval)
Definition tree.cc:7559
tree build_optimization_node(struct gcc_options *opts, struct gcc_options *opts_set)
Definition tree.cc:12372
bool tree_map_base_marked_p(const void *p)
Definition tree.cc:6014
tree arg_size_in_bytes(const_tree type)
Definition tree.cc:15341
poly_int64 tree_to_poly_int64(const_tree t)
Definition tree.cc:3481
unsigned int tree_int_cst_min_precision(tree value, signop sgn)
Definition tree.cc:6764
bool integer_each_onep(const_tree expr)
Definition tree.cc:3051
int get_range_pos_neg(tree arg, gimple *stmt)
Definition tree.cc:14944
tree last_field(const_tree type)
Definition tree.cc:3610
bool tree_fits_sanitize_code_type_p(const_tree t)
Definition tree.cc:6692
tree chainon(tree op1, tree op2)
Definition tree.cc:3630
bool type_with_interoperable_signedness(const_tree type)
Definition tree.cc:14195
void get_type_static_bounds(const_tree type, mpz_t min, mpz_t max)
Definition tree.cc:8545
int tree_floor_log2(const_tree expr)
Definition tree.cc:3181
tree bit_position(const_tree field)
Definition tree.cc:3835
bool tree_nop_conversion_p(const_tree outer_type, const_tree inner_type)
Definition tree.cc:12459
tree component_ref_size(tree ref, special_array_member *sam)
Definition tree.cc:13671
tree build_debug_expr_decl(tree type)
Definition tree.cc:5617
bool tree_fits_poly_int64_p(const_tree t)
Definition tree.cc:6643
enum tls_model decl_tls_model(const_tree node)
Definition tree.cc:1061
tree wide_int_to_tree(tree type, const poly_wide_int_ref &value)
Definition tree.cc:2011
tree build_bitint_type(unsigned HOST_WIDE_INT precision, int unsignedp)
Definition tree.cc:7445
tree purpose_member(const_tree elem, tree list)
Definition tree.cc:3517
void free_node(tree node)
Definition tree.cc:1437
void protected_set_expr_location_if_unset(tree t, location_t loc)
Definition tree.cc:5696
tree build0(enum tree_code code, tree tt MEM_STAT_DECL)
Definition tree.cc:5206
void decl_init_priority_insert(tree decl, priority_type priority)
Definition tree.cc:6064
HOST_WIDE_INT int_byte_position(const_tree field)
Definition tree.cc:3856
unsigned int tree_map_hash(const void *item)
Definition tree.cc:6022
tree build_function_type_list(tree return_type,...)
Definition tree.cc:7855
tree builtin_decl_unreachable()
Definition tree.cc:11425
tree build_vector_type_for_mode(tree innertype, machine_mode mode)
Definition tree.cc:10501
tree build_minus_one_cst(tree type)
Definition tree.cc:2746
tree walk_tree_without_duplicates_1(tree *tp, walk_tree_fn func, void *data, walk_tree_lh lh)
Definition tree.cc:12124
tree double_int_to_tree(tree type, double_int cst)
Definition tree.cc:1676
tree tree_block(tree t)
Definition tree.cc:12136
tree build_pointer_type_for_mode(tree to_type, machine_mode mode, bool can_alias_all)
Definition tree.cc:7223
tree array_type_nelts_top(tree type)
Definition tree.cc:3902
tree strip_float_extensions(tree exp)
Definition tree.cc:12587
bool operation_can_overflow(enum tree_code code)
Definition tree.cc:7146
tree build_range_type(tree type, tree lowval, tree highval)
Definition tree.cc:7525
tree build_all_ones_cst(tree type)
Definition tree.cc:2731
int simple_cst_equal(const_tree t1, const_tree t2)
Definition tree.cc:6792
hashval_t type_hash_canon_hash(tree type)
Definition tree.cc:6227
int tree_int_cst_sgn(const_tree t)
Definition tree.cc:6748
tree build5(enum tree_code code, tree tt, tree arg0, tree arg1, tree arg2, tree arg3, tree arg4 MEM_STAT_DECL)
Definition tree.cc:5446
int list_length(const_tree t)
Definition tree.cc:3572
bool flexible_array_type_p(const_tree type)
Definition tree.cc:15304
tree get_attr_nonstring_decl(tree expr, tree *ref)
Definition tree.cc:15650
unsigned int tree_ctz(const_tree expr)
Definition tree.cc:3193
unsigned crc32_string(unsigned chksum, const char *string)
Definition tree.cc:9072
bool real_negzerop(const_tree expr)
Definition tree.cc:3335
tree build4(enum tree_code code, tree tt, tree arg0, tree arg1, tree arg2, tree arg3 MEM_STAT_DECL)
Definition tree.cc:5419
tree build_omp_clause(location_t loc, enum omp_clause_code code)
Definition tree.cc:11124
tree build_case_label(tree low_value, tree high_value, tree label_decl)
Definition tree.cc:2908
tree make_vector(unsigned log2_npatterns, unsigned int nelts_per_pattern MEM_STAT_DECL)
Definition tree.cc:2178
bool check_qualified_type(const_tree cand, const_tree base, int type_quals)
Definition tree.cc:5802
combined_fn get_call_combined_fn(const_tree call)
Definition tree.cc:8929
tree build_call(tree return_type, tree fn, std::initializer_list< tree > args)
Definition tree.cc:11208
tree build_varargs_function_type_array(tree return_type, int n, tree *arg_types)
Definition tree.cc:7917
void set_decl_tls_model(tree node, enum tls_model model)
Definition tree.cc:1071
bool contains_placeholder_p(const_tree exp)
Definition tree.cc:4313
tree build_int_cst(tree type, poly_int64 cst)
Definition tree.cc:1646
tree decl_function_context(const_tree decl)
Definition tree.cc:8766
bool virtual_method_call_p(const_tree target, bool for_dump_p)
Definition tree.cc:12695
tree get_binfo_at_offset(tree binfo, poly_int64 offset, tree expected_type)
Definition tree.cc:12735
tree lhd_gcc_personality(void)
Definition tree.cc:12679
tree stabilize_reference(tree ref)
Definition tree.cc:5044
bitmap get_nonnull_args(const_tree fntype)
Definition tree.cc:15193
bool tree_fits_uhwi_p(const_tree t)
Definition tree.cc:6662
tree make_int_cst(int len, int ext_len MEM_STAT_DECL)
Definition tree.cc:2928
tree generate_internal_label(const char *prefix)
Definition tree.cc:819
special_array_member component_ref_sam_type(tree ref)
Definition tree.cc:13598
bool integer_zerop(const_tree expr)
Definition tree.cc:3002
unsigned const char omp_clause_num_ops[]
Definition tree.cc:297
void verify_constructor_flags(tree c)
Definition tree.cc:2380
tree save_expr(tree expr)
Definition tree.cc:4157
tree build_zero_cst(tree type)
Definition tree.cc:2787
tree build_call_array_loc(location_t loc, tree return_type, tree fn, int nargs, const tree *args)
Definition tree.cc:11226
size_t tree_code_size(enum tree_code code)
Definition tree.cc:1090
const char * combined_fn_name(combined_fn fn)
Definition tree.cc:15176
tree build_constructor_from_list(tree type, tree vals)
Definition tree.cc:2430
tree build_nt(enum tree_code code,...)
Definition tree.cc:5544
void assign_assembler_name_if_needed(tree t)
Definition tree.cc:955
tree unsigned_integer_tree_node_for_type(const char *type)
Definition tree.cc:9649
tree build_reference_type(tree to_type)
Definition tree.cc:7359
tree build_vector_from_val(tree vectype, tree sc)
Definition tree.cc:2238
tree build_array_type_1(tree elt_type, tree index_type, bool typeless_storage, bool shared, bool set_canonical)
Definition tree.cc:7600
HOST_WIDE_INT int_size_in_bytes(const_tree type)
Definition tree.cc:3782
void build_common_builtin_nodes(void)
Definition tree.cc:10107
bool address_invariant_p(tree t)
Definition tree.cc:4069
tree build_complex(tree type, tree real, tree imag)
Definition tree.cc:2646
bool default_is_empty_record(const_tree type)
Definition tree.cc:15270
tree build_pointer_type(tree to_type)
Definition tree.cc:7287
tree build_real_from_int_cst(tree type, const_tree i)
Definition tree.cc:2585
bool initializer_each_zero_or_onep(const_tree expr)
Definition tree.cc:10808
void recompute_constructor_flags(tree c)
Definition tree.cc:2352
bool tree_fits_shwi_p(const_tree t)
Definition tree.cc:6632
unsigned crc32_unsigned_n(unsigned chksum, unsigned value, unsigned bytes)
Definition tree.cc:9042
HOST_WIDE_INT int_cst_value(const_tree x)
Definition tree.cc:11499
HOST_WIDE_INT max_int_size_in_bytes(const_tree type)
Definition tree.cc:3802
tree build_replicated_int_cst(tree type, unsigned int width, HOST_WIDE_INT value)
Definition tree.cc:2827
tree drop_tree_overflow(tree t)
Definition tree.cc:13228
bool nonnull_arg_p(const_tree arg)
Definition tree.cc:15026
tree upper_bound_in_type(tree outer, tree inner)
Definition tree.cc:11644
tree build_alloca_call_expr(tree size, unsigned int align, HOST_WIDE_INT max_size)
Definition tree.cc:11397
tree vector_cst_elt(const_tree t, unsigned int i)
Definition tree.cc:10643
tree make_tree_vec(int len MEM_STAT_DECL)
Definition tree.cc:2950
machine_mode element_mode(const_tree t)
Definition tree.cc:13866
tree array_ref_up_bound(tree exp)
Definition tree.cc:13351
bool prototype_p(const_tree fntype)
Definition tree.cc:12232
void set_decl_section_name(tree node, const char *value)
Definition tree.cc:1015
bool auto_var_in_fn_p(const_tree var, const_tree fn)
Definition tree.cc:8585
tree build_string(unsigned len, const char *str)
Definition tree.cc:2618
void error_unavailable_use(tree node, tree attr)
Definition tree.cc:12957
bool gimple_canonical_types_compatible_p(const_tree t1, const_tree t2, bool trust_type_canonical)
Definition tree.cc:14216
tree substitute_placeholder_in_expr(tree exp, tree obj)
Definition tree.cc:4781
auto_vec< string_slice > get_clone_attr_versions(const tree arglist, int *default_count, bool filter)
Definition tree.cc:15705
void tree_cc_finalize(void)
Definition tree.cc:16174
bool real_maybe_zerop(const_tree expr)
Definition tree.cc:3411
void set_call_expr_flags(tree decl, int flags)
Definition tree.cc:10036
location_t set_block(location_t loc, tree block)
Definition tree.cc:15089
tree unsigned_type_for(tree type)
Definition tree.cc:11579
bool chain_member(const_tree elem, const_tree chain)
Definition tree.cc:3555
tree build_string_literal(unsigned len, const char *str, tree eltype, unsigned HOST_WIDE_INT size)
Definition tree.cc:11457
tree signed_type_for(tree type)
Definition tree.cc:11590
tree tree_last(tree chain)
Definition tree.cc:3657
tree build_nonstandard_boolean_type(unsigned HOST_WIDE_INT precision)
Definition tree.cc:7420
tree byte_position(const_tree field)
Definition tree.cc:3845
tree get_typenode_from_name(const char *name)
Definition tree.cc:15392
tree tree_strip_sign_nop_conversions(tree exp)
Definition tree.cc:12578
location_t tree_nonartificial_location(tree exp)
Definition tree.cc:12282
tree unshare_expr(tree expr)
Definition tree.cc:16143
bool type_list_equal(const_tree l1, const_tree l2)
Definition tree.cc:6536
bool expr_type_first_operand_type_p(tree_code code)
Definition tree.cc:15350
tree maybe_wrap_with_location(tree expr, location_t loc)
Definition tree.cc:15133
void dump_tree_statistics(void)
Definition tree.cc:8974
tree make_tree_binfo(unsigned base_binfos MEM_STAT_DECL)
Definition tree.cc:2886
tree build_complex_type(tree component_type, bool named)
Definition tree.cc:8050
tree build_nonshared_array_type(tree elt_type, tree index_type)
Definition tree.cc:7665
tree lower_bound_in_type(tree outer, tree inner)
Definition tree.cc:11697
tree build_block(tree vars, tree subblocks, tree supercontext, tree chain)
Definition tree.cc:5663
bool int_fits_type_p(const_tree c, const_tree type)
Definition tree.cc:8446
const builtin_structptr_type builtin_structptr_types[6]
Definition tree.cc:15431
tree walk_tree_1(tree *tp, walk_tree_fn func, void *data, hash_set< tree > *pset, walk_tree_lh lh)
Definition tree.cc:11844
tree build_builtin_unreachable(location_t loc)
Definition tree.cc:11443
tree build_real_from_wide(tree type, const wide_int_ref &i, signop sgn)
Definition tree.cc:2600
tree vector_element_bits_tree(const_tree type)
Definition tree.cc:13930
tree build_each_one_cst(tree type)
Definition tree.cc:2678
tree build_constructor_single(tree type, tree index, tree value)
Definition tree.cc:2415
tree build3(enum tree_code code, tree tt, tree arg0, tree arg1, tree arg2 MEM_STAT_DECL)
Definition tree.cc:5378
auto_vec< string_slice > get_clone_versions(const tree decl, int *default_count, bool filter)
Definition tree.cc:15739
location_t tree_inlined_location(tree exp, bool system_header)
Definition tree.cc:12298
const_tree get_ultimate_context(const_tree decl)
Definition tree.cc:8750
tree force_fit_type(tree type, const poly_wide_int_ref &cst, int overflowable, bool overflowed)
Definition tree.cc:1697
tree build_vector_from_ctor(tree type, const vec< constructor_elt, va_gc > *v)
Definition tree.cc:2204
tree build_function_type(tree value_type, tree arg_types, bool no_named_args_stdarg_p)
Definition tree.cc:7761
void recompute_tree_invariant_for_addr_expr(tree t)
Definition tree.cc:5125
tree strip_zero_offset_components(tree op)
Definition tree.cc:12665
tree uniform_vector_difference_p(const_tree t1, const_tree t2)
Definition tree.cc:10968
tree build_method_type(tree basetype, tree type)
Definition tree.cc:7990
tree build_method_type_directly(tree basetype, tree rettype, tree argtypes)
Definition tree.cc:7928
tree get_ref_from_access_with_size(tree call)
Definition tree.cc:13854
bool cst_and_fits_in_hwi(const_tree x)
Definition tree.cc:2168
tree build_distinct_type_copy(tree type MEM_STAT_DECL)
Definition tree.cc:5939
HOST_WIDE_INT arg_int_size_in_bytes(const_tree type)
Definition tree.cc:15333
const char * get_tree_code_name(enum tree_code code)
Definition tree.cc:13209
void clean_symbol_name(char *p)
Definition tree.cc:9084
bool block_may_fallthru(const_tree block)
Definition tree.cc:13116
void verify_type(const_tree t)
Definition tree.cc:14568
const char * decl_section_name(const_tree node)
Definition tree.cc:1004
tree type_argument_type(const_tree fntype, unsigned argno)
Definition tree.cc:6577
tree substitute_in_expr(tree exp, tree f, tree r)
Definition tree.cc:4589
bool check_base_type(const_tree cand, const_tree base)
Definition tree.cc:5775
bool integer_nonzerop(const_tree expr)
Definition tree.cc:3127
tree build_empty_stmt(location_t loc)
Definition tree.cc:11112
bool operation_no_trapping_overflow(tree type, enum tree_code code)
Definition tree.cc:7176
tree max_object_size(void)
Definition tree.cc:15444
tree uniform_vector_p(const_tree vec)
Definition tree.cc:10847
bool is_truth_type_for(tree type, tree truth_type)
Definition tree.cc:11603
bool needs_to_live_in_memory(const_tree t)
Definition tree.cc:11487
vec< tree, va_gc > ** decl_debug_args_lookup(tree from)
Definition tree.cc:6184
bool integer_minus_onep(const_tree expr)
Definition tree.cc:3092
tree get_callee_fndecl(const_tree call)
Definition tree.cc:8839
int single_nonzero_element(const_tree t)
Definition tree.cc:11081
tree build_call_expr_loc_array(location_t loc, tree fndecl, int n, tree *argarray)
Definition tree.cc:11260
bool zerop(const_tree expr)
Definition tree.cc:2991
tree get_unwidened(tree op, tree for_type)
Definition tree.cc:8251
bool tree_invariant_p(tree t)
Definition tree.cc:4128
bool diagnose_versioned_decls(tree old_decl, tree new_decl)
Definition tree.cc:15900
tree build_decl(location_t loc, enum tree_code code, tree name, tree type MEM_STAT_DECL)
Definition tree.cc:5592
tree build_call_expr_internal_loc(location_t loc, enum internal_fn ifn, tree type, int n,...)
Definition tree.cc:11337
bool initializer_zerop(const_tree init, bool *nonzero)
Definition tree.cc:10674
tree build_one_cst(tree type)
Definition tree.cc:2693
tree type_hash_canon(unsigned int hashcode, tree type)
Definition tree.cc:6458
tree build_call_expr(tree fndecl, int n,...)
Definition tree.cc:11302
tree build_translation_unit_decl(tree name)
Definition tree.cc:5648
tree build_offset_type(tree basetype, tree type)
Definition tree.cc:8004
tree build_tree_list_vec(const vec< tree, va_gc > *vec MEM_STAT_DECL)
Definition tree.cc:3700
tree build_call_vec(tree return_type, tree fn, const vec< tree, va_gc > *args)
Definition tree.cc:11243
bool contains_bitfld_component_ref_p(const_tree ref)
Definition tree.cc:13031
void init_ttree(void)
Definition tree.cc:770
bool is_empty_type(const_tree type)
Definition tree.cc:15248
tree array_ref_element_size(tree exp)
Definition tree.cc:13300
tree build_call_valist(tree return_type, tree fn, int nargs, va_list args)
Definition tree.cc:11192
tree sign_mask_for(tree type)
Definition tree.cc:2858
bool decl_address_invariant_p(const_tree op)
Definition tree.cc:3986
void decl_value_expr_insert(tree from, tree to)
Definition tree.cc:6167
HOST_WIDE_INT tree_to_shwi(const_tree t)
Definition tree.cc:6705
int tree_map_base_eq(const void *va, const void *vb)
Definition tree.cc:5994
tree ssa_uniform_vector_p(tree op)
Definition tree.cc:10896
tree cache_integer_cst(tree t, bool might_duplicate)
Definition tree.cc:2026
priority_type decl_init_priority_lookup(tree decl)
Definition tree.cc:6038
tree bitmask_inv_cst_vector_p(tree t)
Definition tree.cc:11026
void build_common_tree_nodes(bool signed_char)
Definition tree.cc:9704
bool associative_tree_code(enum tree_code code)
Definition tree.cc:7069
bool tree_fits_poly_uint64_p(const_tree t)
Definition tree.cc:6673
tree build_uniform_cst(tree type, tree sc)
Definition tree.cc:2276
tree build_clobber(tree type, enum clobber_kind kind)
Definition tree.cc:2484
bool integer_truep(const_tree expr)
Definition tree.cc:3144
void prepare_target_option_nodes_for_pch(void)
Definition tree.cc:12429
bool auto_var_p(const_tree var)
Definition tree.cc:8574
location_t set_source_range(tree expr, location_t start, location_t finish)
Definition tree.cc:15099
tree build_array_type(tree elt_type, tree index_type, bool typeless_storage)
Definition tree.cc:7656
void copy_if_shared(tree *tp, void *data)
Definition tree.cc:16133
tree build_vl_exp(enum tree_code code, int len MEM_STAT_DECL)
Definition tree.cc:11149
tree copy_list(tree list)
Definition tree.cc:1558
bool vec_member(const_tree elem, vec< tree, va_gc > *v)
Definition tree.cc:3531
bool real_zerop(const_tree expr)
Definition tree.cc:3305
unsigned HOST_WIDE_INT tree_to_uhwi(const_tree t)
Definition tree.cc:6716
tree copy_node(tree node MEM_STAT_DECL)
Definition tree.cc:1469
tree build_nonshared_range_type(tree type, tree lowval, tree highval)
Definition tree.cc:7533
tree build_low_bits_mask(tree type, unsigned bits)
Definition tree.cc:2156
tree decl_type_context(const_tree decl)
Definition tree.cc:8802
struct int_n_trees_t int_n_trees[NUM_INT_N_ENTS]
Definition tree.cc:292
tree build_index_type(tree maxval)
Definition tree.cc:7548
enum tree_node_structure_enum tree_node_structure(const_tree t)
Definition tree.cc:4273
tree decl_assembler_name(tree decl)
Definition tree.cc:854
tree build_aligned_type(tree type, unsigned int align)
Definition tree.cc:5914
bool tree_contains_struct[MAX_TREE_CODES][64]
Definition tree.cc:294
vec< tree, va_gc > * ctor_to_vec(tree ctor)
Definition tree.cc:3739
void find_placeholder_in_expr(tree exp, vec< tree > *refs)
Definition tree.cc:4515
tree build_varargs_function_type_list(tree return_type,...)
Definition tree.cc:7872
poly_uint64 tree_to_poly_uint64(const_tree t)
Definition tree.cc:3490
tree build_poly_int_cst(tree type, const poly_wide_int_ref &values)
Definition tree.cc:1985
tree build_vector_a_then_b(tree vec_type, unsigned int num_a, tree a, tree b)
Definition tree.cc:2335
void protected_set_expr_location(tree t, location_t loc)
Definition tree.cc:5680
tree build_vector_type(tree innertype, poly_int64 nunits)
Definition tree.cc:10536
bool using_eh_for_cleanups_p(void)
Definition tree.cc:13202
tree unshare_expr_without_location(tree expr)
Definition tree.cc:16165
sanitize_code_type tree_to_sanitize_code_type(const_tree t)
Definition tree.cc:6727
tree build_array_type_nelts(tree elt_type, poly_uint64 nelts)
Definition tree.cc:7674
tree get_file_function_name(const char *type)
Definition tree.cc:9139
tree skip_simple_constant_arithmetic(tree expr)
Definition tree.cc:4245
bool ptrdiff_tree_p(const_tree t, poly_int64 *value)
Definition tree.cc:3457
int type_num_arguments(const_tree fntype)
Definition tree.cc:6556
tree get_base_address(tree t)
Definition tree.cc:13281
tree build_fn_decl(const char *name, tree type)
Definition tree.cc:5629
tree build_vec_series(tree type, tree base, tree step)
Definition tree.cc:2289
location_t * block_nonartificial_location(tree block)
Definition tree.cc:12249
tree build_call_expr_internal_loc_array(location_t loc, internal_fn ifn, tree type, int n, const tree *args)
Definition tree.cc:11320
tree component_ref_field_offset(tree exp)
Definition tree.cc:13543
tree get_containing_scope(const_tree t)
Definition tree.cc:8742
tree signed_or_unsigned_type_for(int unsignedp, tree type)
Definition tree.cc:11527
tree truth_type_for(tree type)
Definition tree.cc:11628
size_t tree_size(const_tree node)
Definition tree.cc:1203
unsigned int tree_map_base_hash(const void *item)
Definition tree.cc:6004
int tree_int_cst_sign_bit(const_tree t)
Definition tree.cc:6736
unsigned fndecl_dealloc_argno(tree fndecl)
Definition tree.cc:15588
tree build_nt_call_vec(tree fn, vec< tree, va_gc > *args)
Definition tree.cc:5569
tree build_target_option_node(struct gcc_options *opts, struct gcc_options *opts_set)
Definition tree.cc:12400
const_tree strip_invariant_refs(const_tree op)
Definition tree.cc:12635
bool valid_constant_size_p(const_tree size, cst_size_error *perr)
Definition tree.cc:7007
void decl_debug_expr_insert(tree from, tree to)
Definition tree.cc:6140
tree tree_strip_nop_conversions(tree exp)
Definition tree.cc:12567
tree value_member(tree elem, tree list)
Definition tree.cc:3502
bool really_constant_p(const_tree exp)
Definition tree.cc:3440
bool array_ref_flexible_size_p(tree ref, bool *is_trailing_array)
Definition tree.cc:13385
bool integer_all_onesp(const_tree expr)
Definition tree.cc:3067
tree chain_index(int idx, tree chain)
Definition tree.cc:3545
bool real_minus_onep(const_tree expr)
Definition tree.cc:3387
void tree_set_block(tree t, tree b)
Definition tree.cc:12147
bool flexible_array_member_type_p(const_tree type)
Definition tree.cc:15288
tree build_qualified_type(tree type, int type_quals MEM_STAT_DECL)
Definition tree.cc:5865
tree array_type_nelts_minus_one(const_tree type)
Definition tree.cc:3865
int suppress_location_wrappers
Definition tree.cc:15171
#define TYPE_NAME(NODE)
Definition tree.h:2449
bool is_lang_specific(const_tree t)
Definition tree.h:6281
tree strip_array_types(tree type)
Definition tree.h:5212
tree function_args_iter_cond(function_args_iterator *i)
Definition tree.h:5726
#define TREE_VALUE(NODE)
Definition tree.h:1252
poly_uint64 bit_field_offset(const_tree t)
Definition tree.h:5935
#define COMPLETE_TYPE_P(NODE)
Definition tree.h:721
#define DECL_CONTEXT(NODE)
Definition tree.h:2941
enum tree_code tree_code_for_canonical_type_merging(enum tree_code code)
Definition tree.h:6098
#define target_option_default_node
Definition tree.h:4831
tree make_omp_iterator(void)
Definition tree.h:7231
#define DECL_ORIGINAL_TYPE(NODE)
Definition tree.h:3774
unsigned int tree_decl_map_hash(const void *)
Definition tree.cc:6030
poly_uint64 TYPE_VECTOR_SUBPARTS(const_tree node)
Definition tree.h:4456
#define optimization_default_node
Definition tree.h:4827
#define TREE_READONLY(NODE)
Definition tree.h:965
#define DECL_FUNCTION_SPECIFIC_TARGET(NODE)
Definition tree.h:3727
cst_size_error
Definition tree.h:5233
@ cst_size_too_big
Definition tree.h:5237
@ cst_size_not_constant
Definition tree.h:5235
@ cst_size_ok
Definition tree.h:5234
@ cst_size_overflow
Definition tree.h:5238
@ cst_size_negative
Definition tree.h:5236
#define call_expr_nargs(NODE)
Definition tree.h:1520
#define DECL_FIELD_BIT_OFFSET(NODE)
Definition tree.h:3219
bool tree_int_cst_lt(const_tree t1, const_tree t2)
Definition tree.h:6895
built_in_function as_builtin_fn(combined_fn code)
Definition tree.h:55
#define TYPE_PRECISION(NODE)
Definition tree.h:2446
#define TREE_INT_CST_NUNITS(NODE)
Definition tree.h:1168
unsigned int vector_cst_encoded_nelts(const_tree t)
Definition tree.h:4868
built_in_function DECL_FUNCTION_CODE(const_tree decl)
Definition tree.h:4531
#define EXPR_CHECK(T)
Definition tree.h:501
#define TREE_OPERAND(NODE, I)
Definition tree.h:1336
poly_uint64 bit_field_size(const_tree t)
Definition tree.h:5926
bool poly_int_tree_p(const_tree t, poly_int64 *value)
Definition tree.h:5248
#define DECL_NAME(NODE)
Definition tree.h:2889
bool canonical_type_used_p(const_tree t)
Definition tree.h:6128
tree make_expanded_omp_iterator(void)
Definition tree.h:7238
#define IS_EXPR_CODE_CLASS(CLASS)
Definition tree.h:294
void put_warning_spec(tree, unsigned)
Definition warning-control.cc:280
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:4994
int struct_ptr_eq(const void *a, const void *b)
Definition tree.h:5835
#define DECL_FUNCTION_SPECIFIC_OPTIMIZATION(NODE)
Definition tree.h:3732
#define AGGREGATE_TYPE_P(TYPE)
Definition tree.h:706
#define sizetype
Definition tree.h:5346
bool maybe_special_function_p(const_tree fndecl)
Definition tree.h:6411
tree * function_args_iter_cond_ptr(function_args_iterator *i)
Definition tree.h:5717
#define TREE_VEC_BEGIN(NODE)
Definition tree.h:1262
bool ptrofftype_p(tree type)
Definition tree.h:5896
tree first_call_expr_arg(tree exp, call_expr_arg_iterator *iter)
Definition tree.h:6248
bool int_divide_or_mod_p(const code_helper &code)
Definition tree.h:5864
tree build2_loc(location_t loc, enum tree_code code, tree type, tree arg0, tree arg1 CXX_MEM_STAT_INFO)
Definition tree.h:4974
#define TREE_INT_CST_LOW(NODE)
Definition tree.h:1173
bool tree_zero_one_valued_p(tree)
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:4984
#define TREE_OPTIMIZATION(NODE)
Definition tree.h:3804
bool inlined_function_outer_scope_p(const_tree block)
Definition tree.h:5745
void function_args_iter_init(function_args_iterator *i, const_tree fntype)
Definition tree.h:5708
#define tree_decl_map_eq
Definition tree.h:6149
bool builtin_fn_p(combined_fn code)
Definition tree.h:46
bool type_has_mode_precision_p(const_tree t)
Definition tree.h:7029
bool typedef_variant_p(const_tree type)
Definition tree.h:5825
void function_args_iter_next(function_args_iterator *i)
Definition tree.h:5733
#define TREE_CODE_CLASS(CODE)
Definition tree.h:203
HOST_WIDE_INT int_bit_position(const_tree field)
Definition tree.h:6951
hashval_t struct_ptr_hash(const void *a)
Definition tree.h:5843
bool desired_pro_or_demotion_p(const_tree to_type, const_tree from_type)
Definition tree.h:7003
#define BLOCK_SOURCE_LOCATION(NODE)
Definition tree.h:2418
constexpr opt_code all_warnings
Definition tree.h:7158
#define DECL_UNCHECKED_FUNCTION_CODE(NODE)
Definition tree.h:3033
void SET_TYPE_VECTOR_SUBPARTS(tree node, poly_uint64 subparts)
Definition tree.h:4478
tree tree_strip_any_location_wrapper(tree exp)
Definition tree.h:4614
bool error_operand_p(const_tree t)
Definition tree.h:4859
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:5004
void set_decl_built_in_function(tree decl, built_in_class fclass, unsigned int fcode)
Definition tree.h:4563
bool more_call_expr_args_p(const call_expr_arg_iterator *iter)
Definition tree.h:6264
#define IDENTIFIER_LENGTH(NODE)
Definition tree.h:1236
bool built_in_function_equal_p(built_in_function name0, built_in_function name1)
Definition tree.h:7037
#define TYPE_UNSIGNED(NODE)
Definition tree.h:980
#define TREE_CODE(NODE)
Definition tree.h:325
bool handled_component_p(const_tree t)
Definition tree.h:5605
#define TYPE_MODE(NODE)
Definition tree.h:2455
unsigned crc32_byte(unsigned chksum, char byte)
Definition tree.h:5775
#define TYPE_SIGN(NODE)
Definition tree.h:983
bool builtin_decl_declared_p(enum built_in_function fncode)
Definition tree.h:6391
generic_wide_int< wi::extended_tree< WIDEST_INT_MAX_PRECISION *2 > > widest2_int_cst
Definition tree.h:6587
bool truth_value_p(enum tree_code code)
Definition tree.h:5885
int DECL_FE_FUNCTION_CODE(const_tree decl)
Definition tree.h:4553
#define FUNCTION_DECL_DECL_TYPE(NODE)
Definition tree.h:3561
#define EXPR_LOCATION(NODE)
Definition tree.h:1361
source_range get_expr_source_range(tree expr)
Definition tree.h:1386
#define POINTER_TYPE_P(TYPE)
Definition tree.h:713
#define CAN_HAVE_LOCATION_P(NODE)
Definition tree.h:1383
#define TREE_TARGET_OPTION(NODE)
Definition tree.h:3818
#define SSA_NAME_VERSION(NODE)
Definition tree.h:2296
#define TYPE_P(NODE)
Definition tree.h:227
hashval_t iterative_hash_expr(const_tree tree, hashval_t seed)
Definition tree.h:5965
tree build_call_nary(tree return_type, tree fn, int nargs, T... args)
Definition tree.h:5077
const_tree first_const_call_expr_arg(const_tree exp, const_call_expr_arg_iterator *iter)
Definition tree.h:6255
void set_builtin_decl_implicit_p(enum built_in_function fncode, bool implicit_p)
Definition tree.h:6343
unsigned get_warning_spec(const_tree)
Definition warning-control.cc:271
#define TREE_CHAIN(NODE)
Definition tree.h:512
bool builtin_decl_implicit_p(enum built_in_function fncode)
Definition tree.h:6379
bool fndecl_built_in_p(const_tree node)
Definition tree.h:7058
tree builtin_decl_explicit(enum built_in_function fncode)
Definition tree.h:6299
#define VL_EXP_CLASS_P(NODE)
Definition tree.h:278
#define IDENTIFIER_POINTER(NODE)
Definition tree.h:1238
#define BUILTIN_VALID_P(FNCODE)
Definition tree.h:6287
constexpr opt_code no_warning
Definition tree.h:7156
#define POLY_INT_CST_P(NODE)
Definition tree.h:1178
#define TYPE_REVERSE_STORAGE_ORDER(NODE)
Definition tree.h:1119
#define TREE_STATIC(NODE)
Definition tree.h:785
int tree_int_cst_compare(const_tree t1, const_tree t2)
Definition tree.h:6914
tree builtin_decl_implicit(enum built_in_function fncode)
Definition tree.h:6308
#define CALL_EXPR_ARG(NODE, I)
Definition tree.h:1519
int DECL_MD_FUNCTION_CODE(const_tree decl)
Definition tree.h:4542
#define ANY_INTEGRAL_TYPE_P(TYPE)
Definition tree.h:630
void set_builtin_decl(enum built_in_function fncode, tree decl, bool implicit_p)
Definition tree.h:6328
#define TREE_INT_CST_ELT(NODE, I)
Definition tree.h:1172
#define DECL_EXTERNAL(NODE)
Definition tree.h:3078
bool builtin_decl_explicit_p(enum built_in_function fncode)
Definition tree.h:6370
tree size_in_bytes(const_tree t)
Definition tree.h:5333
cl_target_option * target_opts_for_fn(const_tree fndecl)
Definition tree.h:6463
bool location_wrapper_p(const_tree exp)
Definition tree.h:4594
#define TREE_TYPE(NODE)
Definition tree.h:513
#define VL_EXP_OPERAND_LENGTH(NODE)
Definition tree.h:1343
#define INTEGRAL_TYPE_P(TYPE)
Definition tree.h:614
bool fndecl_builtin_alloc_p(const_tree node)
Definition tree.h:7097
void copy_decl_built_in_function(tree newdecl, const_tree olddecl)
Definition tree.h:4574
#define DECL_BUILT_IN_CLASS(NODE)
Definition tree.h:3718
bool reverse_storage_order_for_component_p(tree t)
Definition tree.h:5626
#define TREE_CODE_LENGTH(CODE)
Definition tree.h:302
#define TREE_PUBLIC(NODE)
Definition tree.h:875
bool storage_order_barrier_p(const_tree t)
Definition tree.h:5664
#define TYPE_ARG_TYPES(NODE)
Definition tree.h:2730
bool complete_or_array_type_p(const_tree type)
Definition tree.h:5907
access_mode
Definition tree.h:6137
@ access_deferred
Definition tree.h:6142
@ access_none
Definition tree.h:6138
@ access_read_write
Definition tree.h:6141
@ access_write_only
Definition tree.h:6140
@ access_read_only
Definition tree.h:6139
wi::tree_to_poly_wide_ref poly_int_cst_value(const_tree x)
Definition tree.h:6760
#define EXPR_LOCATION_WRAPPER_P(NODE)
Definition tree.h:4587
bool internal_fn_p(combined_fn code)
Definition tree.h:64
#define DECL_UID(NODE)
Definition tree.h:2897
unsigned crc32_unsigned(unsigned chksum, unsigned value)
Definition tree.h:5770
bool valid_vector_subparts_p(poly_uint64 subparts)
Definition tree.h:4514
tree build1_loc(location_t loc, enum tree_code code, tree type, tree arg1 CXX_MEM_STAT_INFO)
Definition tree.h:4964
int tree_operand_length(const_tree node)
Definition tree.h:4384
bool type_with_alias_set_p(const_tree t)
Definition tree.h:6960
#define REF_REVERSE_STORAGE_ORDER(NODE)
Definition tree.h:1137
bool tree_int_cst_le(const_tree t1, const_tree t2)
Definition tree.h:6904
#define TREE_HASH(NODE)
Definition tree.h:551
#define ALLOCA_FUNCTION_CODE_P(FCODE)
Definition tree.h:3037
#define DECL_NONALIASED(NODE)
Definition tree.h:3518
bool trunc_or_exact_div_p(tree_code code)
Definition tree.h:5857
struct cl_optimization * opts_for_fn(const_tree fndecl)
Definition tree.h:6453
#define VECTOR_CST_NPATTERNS(NODE)
Definition tree.h:1220
bool id_equal(const_tree id, const char *str)
Definition tree.h:4442
special_array_member
Definition tree.h:6052
@ none
Definition tree.h:6053
@ int_0
Definition tree.h:6054
@ trail_0
Definition tree.h:6055
@ trail_n
Definition tree.h:6057
@ trail_1
Definition tree.h:6056
@ int_n
Definition tree.h:6058
#define error_mark_node
Definition tree.h:4622
const_tree strip_pointer_types(const_tree type)
Definition tree.h:5223
#define TREE_VEC_END(NODE)
Definition tree.h:1263
#define TREE_ADDRESSABLE(NODE)
Definition tree.h:757
bool is_typedef_decl(const_tree x)
Definition tree.h:5816
#define SET_EXPR_LOCATION(NODE, LOCUS)
Definition tree.h:1363
internal_fn as_internal_fn(combined_fn code)
Definition tree.h:73
#define DECL_FIELD_OFFSET(NODE)
Definition tree.h:3213
#define VECTOR_CST_NELTS_PER_PATTERN(NODE)
Definition tree.h:1222
combined_fn as_combined_fn(built_in_function fn)
Definition tree.h:30
void set_function_decl_type(tree decl, function_decl_type t, bool set)
Definition tree.h:3568
#define NULL_TREE
Definition tree.h:318
#define POLY_INT_CST_COEFF(NODE, I)
Definition tree.h:1182
#define VECTOR_TYPE_P(TYPE)
Definition tree.h:602
void set_builtin_decl_declared_p(enum built_in_function fncode, bool declared_p)
Definition tree.h:6356
bool is_global_var(const_tree t)
Definition tree.h:6429
#define TREE_INT_CST_EXT_NUNITS(NODE)
Definition tree.h:1170
#define TYPE_UID(NODE)
Definition tree.h:2436
#define char_type_node
Definition tree.h:4844
#define TREE_OPERAND_LENGTH(NODE)
Definition tree.h:1335
bool has_warning_spec(const_tree)
Definition warning-control.cc:262
bool may_be_aliased(const_tree var)
Definition tree.h:6439
#define WIDEST_INT_MAX_PRECISION
Definition wide-int.h:257
generic_wide_int< wide_int_ref_storage< false > > wide_int_ref
Definition wide-int.h:353
#define OFFSET_INT_ELTS
Definition wide-int.h:281
#define ADDR_MAX_PRECISION
Definition wide-int.h:276
generic_wide_int< wide_int_storage > wide_int
Definition wide-int.h:343
const T2 & y
Definition wide-int.h:3870