Message ID | 20230513232321.279733-5-rep.dot.nop@gmail.com |
---|---|
State | New |
Headers | show |
Series | use _P() defines from tree.h | expand |
On Sat, May 13, 2023 at 7:26 PM Bernhard Reutner-Fischer via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > From: Bernhard Reutner-Fischer <aldot@gcc.gnu.org> > > gcc/cp/ChangeLog: > > * call.cc (promoted_arithmetic_type_p): Use _P defines from tree.h. > (build_conditional_expr): Ditto. > (convert_like_internal): Ditto. > (convert_arg_to_ellipsis): Ditto. > (build_over_call): Ditto. > (compare_ics): Ditto. > * class.cc (is_empty_base_ref): Ditto. > * coroutines.cc (rewrite_param_uses): Ditto. > * cp-tree.h (DECL_DISCRIMINATOR_P): Ditto. > (ARITHMETIC_TYPE_P): Ditto. > * cvt.cc (ocp_convert): Ditto. > * cxx-pretty-print.cc (pp_cxx_template_argument_list): Ditto. > * decl.cc (layout_var_decl): Ditto. > (get_tuple_size): Ditto. > * error.cc (dump_simple_decl): Ditto. > * lambda.cc (start_lambda_scope): Ditto. > * mangle.cc (write_template_arg): Ditto. > * method.cc (spaceship_comp_cat): Ditto. > * module.cc (node_template_info): Ditto. > (trees_out::start): Ditto. > (trees_out::decl_node): Ditto. > (trees_in::read_var_def): Ditto. > (set_instantiating_module): Ditto. > * name-lookup.cc (maybe_record_mergeable_decl): Ditto. > (consider_decl): Ditto. > (maybe_add_fuzzy_decl): Ditto. > * pt.cc (convert_nontype_argument): Ditto. > * semantics.cc (handle_omp_array_sections_1): Ditto. > (finish_omp_clauses): Ditto. > (finish_omp_target_clauses_r): Ditto. > (is_this_parameter): Ditto. > * tree.cc (build_cplus_array_type): Ditto. > (is_this_expression): Ditto. > * typeck.cc (do_warn_enum_conversions): Ditto. > * typeck2.cc (store_init_value): Ditto. > (check_narrowing): Ditto. > --- > gcc/cp/call.cc | 42 +++++++++++++++++++------------------- > gcc/cp/class.cc | 2 +- > gcc/cp/coroutines.cc | 2 +- > gcc/cp/cp-tree.h | 4 ++-- > gcc/cp/cvt.cc | 2 +- > gcc/cp/cxx-pretty-print.cc | 2 +- > gcc/cp/decl.cc | 4 ++-- > gcc/cp/error.cc | 2 +- > gcc/cp/lambda.cc | 2 +- > gcc/cp/mangle.cc | 2 +- > gcc/cp/method.cc | 2 +- > gcc/cp/module.cc | 12 +++++------ > gcc/cp/name-lookup.cc | 6 +++--- > gcc/cp/pt.cc | 2 +- > gcc/cp/semantics.cc | 24 +++++++++++----------- > gcc/cp/tree.cc | 4 ++-- > gcc/cp/typeck.cc | 4 ++-- > gcc/cp/typeck2.cc | 10 ++++----- > 18 files changed, 64 insertions(+), 64 deletions(-) > > diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc > index 2a06520c0c1..6e13d17f6b8 100644 > --- a/gcc/cp/call.cc > +++ b/gcc/cp/call.cc > @@ -2746,7 +2746,7 @@ promoted_arithmetic_type_p (tree type) > integral types plus floating types. */ > return ((CP_INTEGRAL_TYPE_P (type) > && same_type_p (type_promotes_to (type), type)) > - || TREE_CODE (type) == REAL_TYPE); > + || SCALAR_FLOAT_TYPE_P (type)); > } > > /* Create any builtin operator overload candidates for the operator in > @@ -5759,10 +5759,10 @@ build_conditional_expr (const op_location_t &loc, > if ((TREE_CODE (arg2) == EXCESS_PRECISION_EXPR > || TREE_CODE (arg3) == EXCESS_PRECISION_EXPR) > && (TREE_CODE (arg2_type) == INTEGER_TYPE > - || TREE_CODE (arg2_type) == REAL_TYPE > + || SCALAR_FLOAT_TYPE_P (arg2_type) > || TREE_CODE (arg2_type) == COMPLEX_TYPE) > && (TREE_CODE (arg3_type) == INTEGER_TYPE > - || TREE_CODE (arg3_type) == REAL_TYPE > + || SCALAR_FLOAT_TYPE_P (arg3_type) > || TREE_CODE (arg3_type) == COMPLEX_TYPE)) > { > semantic_result_type > @@ -5775,8 +5775,8 @@ build_conditional_expr (const op_location_t &loc, > t1 = TREE_TYPE (t1); > if (TREE_CODE (t2) == COMPLEX_TYPE) > t2 = TREE_TYPE (t2); > - gcc_checking_assert (TREE_CODE (t1) == REAL_TYPE > - && TREE_CODE (t2) == REAL_TYPE > + gcc_checking_assert (SCALAR_FLOAT_TYPE_P (t1) > + && SCALAR_FLOAT_TYPE_P (t2) > && (extended_float_type_p (t1) > || extended_float_type_p (t2)) > && cp_compare_floating_point_conversion_ranks > @@ -6127,8 +6127,8 @@ build_conditional_expr (const op_location_t &loc, > t1 = TREE_TYPE (t1); > if (TREE_CODE (t2) == COMPLEX_TYPE) > t2 = TREE_TYPE (t2); > - gcc_checking_assert (TREE_CODE (t1) == REAL_TYPE > - && TREE_CODE (t2) == REAL_TYPE > + gcc_checking_assert (SCALAR_FLOAT_TYPE_P (t1) > + && SCALAR_FLOAT_TYPE_P (t2) > && (extended_float_type_p (t1) > || extended_float_type_p (t2)) > && cp_compare_floating_point_conversion_ranks > @@ -6147,8 +6147,8 @@ build_conditional_expr (const op_location_t &loc, > t1 = TREE_TYPE (t1); > if (TREE_CODE (t2) == COMPLEX_TYPE) > t2 = TREE_TYPE (t2); > - gcc_checking_assert (TREE_CODE (t1) == REAL_TYPE > - && TREE_CODE (t2) == REAL_TYPE > + gcc_checking_assert (SCALAR_FLOAT_TYPE_P (t1) > + && SCALAR_FLOAT_TYPE_P (t2) > && (extended_float_type_p (t1) > || extended_float_type_p (t2)) > && cp_compare_floating_point_conversion_ranks > @@ -6185,8 +6185,8 @@ build_conditional_expr (const op_location_t &loc, > else if ((complain & tf_warning) > && warn_deprecated_enum_float_conv > && ((TREE_CODE (arg2_type) == ENUMERAL_TYPE > - && TREE_CODE (arg3_type) == REAL_TYPE) > - || (TREE_CODE (arg2_type) == REAL_TYPE > + && SCALAR_FLOAT_TYPE_P (arg3_type)) > + || (SCALAR_FLOAT_TYPE_P (arg2_type) > && TREE_CODE (arg3_type) == ENUMERAL_TYPE))) > { > if (TREE_CODE (arg2_type) == ENUMERAL_TYPE) > @@ -8321,8 +8321,8 @@ convert_like_internal (conversion *convs, tree expr, tree fn, int argnum, > "direct-initialization", > totype, TREE_TYPE (expr)); > > - if (TREE_CODE (TREE_TYPE (expr)) == REAL_TYPE > - && TREE_CODE (totype) == REAL_TYPE > + if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (expr)) > + && SCALAR_FLOAT_TYPE_P (totype) > && (extended_float_type_p (TREE_TYPE (expr)) > || extended_float_type_p (totype))) > switch (cp_compare_floating_point_conversion_ranks (TREE_TYPE (expr), > @@ -8976,7 +8976,7 @@ convert_arg_to_ellipsis (tree arg, tsubst_flags_t complain) > type that is subject to the floating-point promotion > (_conv.fpprom_), the value of the argument is converted to the > promoted type before the call. */ > - if (TREE_CODE (arg_type) == REAL_TYPE > + if (SCALAR_FLOAT_TYPE_P (arg_type) > && (TYPE_PRECISION (arg_type) > < TYPE_PRECISION (double_type_node)) > && !DECIMAL_FLOAT_MODE_P (TYPE_MODE (arg_type)) > @@ -9798,7 +9798,7 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) > obj_arg = NULL_TREE; > } > /* Look through *(const T *)&obj. */ > - else if (obj_arg && TREE_CODE (obj_arg) == INDIRECT_REF) > + else if (obj_arg && INDIRECT_REF_P (obj_arg)) > { > tree addr = TREE_OPERAND (obj_arg, 0); > STRIP_NOPS (addr); > @@ -10462,7 +10462,7 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) > obj_arg = NULL_TREE; > } > /* Look through *(const T *)&obj. */ > - else if (obj_arg && TREE_CODE (obj_arg) == INDIRECT_REF) > + else if (obj_arg && INDIRECT_REF_P (obj_arg)) > { > tree addr = TREE_OPERAND (obj_arg, 0); > STRIP_NOPS (addr); > @@ -12199,7 +12199,7 @@ compare_ics (conversion *ics1, conversion *ics2) > std::swap (fp3, t3); > } > if (TYPE_MAIN_VARIANT (fp1) == TYPE_MAIN_VARIANT (fp3) > - && TREE_CODE (fp1) == REAL_TYPE > + && SCALAR_FLOAT_TYPE_P (fp1) > /* Only apply this rule if at least one of the 3 types is > extended floating-point type, otherwise keep them as > before for compatibility reasons with types like __float128. > @@ -12207,15 +12207,15 @@ compare_ics (conversion *ics1, conversion *ics2) > ranks and so when just those 3 types are involved, this > rule doesn't trigger. */ > && (extended_float_type_p (fp1) > - || (TREE_CODE (fp2) == REAL_TYPE && extended_float_type_p (fp2)) > - || (TREE_CODE (t3) == REAL_TYPE && extended_float_type_p (t3)))) > + || (SCALAR_FLOAT_TYPE_P (fp2) && extended_float_type_p (fp2)) > + || (SCALAR_FLOAT_TYPE_P (t3) && extended_float_type_p (t3)))) > { > if (TREE_CODE (fp2) != REAL_TYPE) > { > ret = -ret; > std::swap (fp2, t3); > } > - if (TREE_CODE (fp2) == REAL_TYPE) > + if (SCALAR_FLOAT_TYPE_P (fp2)) > { > /* cp_compare_floating_point_conversion_ranks returns -1, 0 or 1 > if the conversion rank is equal (-1 or 1 if the subrank is > @@ -12242,7 +12242,7 @@ compare_ics (conversion *ics1, conversion *ics2) > FP1 <-> T3 conversion is better. */ > return -ret; > } > - else if (TREE_CODE (t3) == REAL_TYPE > + else if (SCALAR_FLOAT_TYPE_P (t3) > && IN_RANGE (cp_compare_floating_point_conversion_ranks > (fp1, t3), > -1, 1)) > diff --git a/gcc/cp/class.cc b/gcc/cp/class.cc > index 68b62086340..bc84f4f731a 100644 > --- a/gcc/cp/class.cc > +++ b/gcc/cp/class.cc > @@ -673,7 +673,7 @@ convert_to_base_statically (tree expr, tree base) > bool > is_empty_base_ref (tree expr) > { > - if (TREE_CODE (expr) == INDIRECT_REF) > + if (INDIRECT_REF_P (expr)) > expr = TREE_OPERAND (expr, 0); > if (TREE_CODE (expr) != NOP_EXPR) > return false; > diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc > index 59a240ebd40..3493d3c6ed3 100644 > --- a/gcc/cp/coroutines.cc > +++ b/gcc/cp/coroutines.cc > @@ -3780,7 +3780,7 @@ rewrite_param_uses (tree *stmt, int *do_subtree ATTRIBUTE_UNUSED, void *d) > param_frame_data *data = (param_frame_data *) d; > > /* For lambda closure content, we have to look specifically. */ > - if (TREE_CODE (*stmt) == VAR_DECL && DECL_HAS_VALUE_EXPR_P (*stmt)) > + if (VAR_P (*stmt) && DECL_HAS_VALUE_EXPR_P (*stmt)) > { > tree t = DECL_VALUE_EXPR (*stmt); > return cp_walk_tree (&t, rewrite_param_uses, d, NULL); > diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h > index 714b6d55f4f..a1b882f11fe 100644 > --- a/gcc/cp/cp-tree.h > +++ b/gcc/cp/cp-tree.h > @@ -3189,7 +3189,7 @@ struct GTY(()) lang_decl { > > /* Nonzero if NODE has DECL_DISCRIMINATOR and not DECL_ACCESS. */ > #define DECL_DISCRIMINATOR_P(NODE) \ > - (((TREE_CODE (NODE) == VAR_DECL && TREE_STATIC (NODE)) \ > + (((VAR_P (NODE) && TREE_STATIC (NODE)) \ > || DECL_IMPLICIT_TYPEDEF_P (NODE)) \ > && DECL_FUNCTION_SCOPE_P (NODE)) > > @@ -4453,7 +4453,7 @@ get_vec_init_expr (tree t) > Keep these checks in ascending code order. */ > #define ARITHMETIC_TYPE_P(TYPE) \ > (CP_INTEGRAL_TYPE_P (TYPE) \ > - || TREE_CODE (TYPE) == REAL_TYPE \ > + || SCALAR_FLOAT_TYPE_P (TYPE) \ > || TREE_CODE (TYPE) == COMPLEX_TYPE) > > /* [basic.types] > diff --git a/gcc/cp/cvt.cc b/gcc/cp/cvt.cc > index 17827d06a4a..c6b52f07050 100644 > --- a/gcc/cp/cvt.cc > +++ b/gcc/cp/cvt.cc > @@ -810,7 +810,7 @@ ocp_convert (tree type, tree expr, int convtype, int flags, > /* enum = enum, enum = int, enum = float, (enum)pointer are all > errors. */ > if (((INTEGRAL_OR_ENUMERATION_TYPE_P (intype) > - || TREE_CODE (intype) == REAL_TYPE) > + || SCALAR_FLOAT_TYPE_P (intype)) > && ! (convtype & CONV_STATIC)) > || TYPE_PTR_P (intype)) > { > diff --git a/gcc/cp/cxx-pretty-print.cc b/gcc/cp/cxx-pretty-print.cc > index 4b547c77ef4..909a9dc917f 100644 > --- a/gcc/cp/cxx-pretty-print.cc > +++ b/gcc/cp/cxx-pretty-print.cc > @@ -1966,7 +1966,7 @@ pp_cxx_template_argument_list (cxx_pretty_printer *pp, tree t) > if (TYPE_P (arg) || (TREE_CODE (arg) == TEMPLATE_DECL > && TYPE_P (DECL_TEMPLATE_RESULT (arg)))) > pp->type_id (arg); > - else if (TREE_CODE (arg) == VAR_DECL && DECL_NTTP_OBJECT_P (arg)) > + else if (VAR_P (arg) && DECL_NTTP_OBJECT_P (arg)) > pp->expression (DECL_INITIAL (arg)); > else > pp->expression (arg); > diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc > index 23a2b2fef0b..a672e4844f1 100644 > --- a/gcc/cp/decl.cc > +++ b/gcc/cp/decl.cc > @@ -6349,7 +6349,7 @@ layout_var_decl (tree decl) > && !vec_safe_is_empty (CONSTRUCTOR_ELTS (DECL_INITIAL (decl))) > && DECL_SIZE (decl) != NULL_TREE > && TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST > - && TYPE_SIZE (type) != NULL_TREE > + && COMPLETE_TYPE_P (type) > && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST > && tree_int_cst_equal (DECL_SIZE (decl), TYPE_SIZE (type))) > { > @@ -8927,7 +8927,7 @@ get_tuple_size (tree type) > return NULL_TREE; > tree val = lookup_qualified_name (inst, value_identifier, > LOOK_want::NORMAL, /*complain*/false); > - if (TREE_CODE (val) == VAR_DECL || TREE_CODE (val) == CONST_DECL) > + if (VAR_P (val) || TREE_CODE (val) == CONST_DECL) > val = maybe_constant_value (val); > if (TREE_CODE (val) == INTEGER_CST) > return val; > diff --git a/gcc/cp/error.cc b/gcc/cp/error.cc > index 9b967ce409d..31319aa9e87 100644 > --- a/gcc/cp/error.cc > +++ b/gcc/cp/error.cc > @@ -1140,7 +1140,7 @@ dump_global_iord (cxx_pretty_printer *pp, tree t) > static void > dump_simple_decl (cxx_pretty_printer *pp, tree t, tree type, int flags) > { > - if (TREE_CODE (t) == VAR_DECL && DECL_NTTP_OBJECT_P (t)) > + if (VAR_P (t) && DECL_NTTP_OBJECT_P (t)) > return dump_expr (pp, DECL_INITIAL (t), flags); > > if (flags & TFF_DECL_SPECIFIERS) > diff --git a/gcc/cp/lambda.cc b/gcc/cp/lambda.cc > index 9925209b2ed..a359bc6ee8d 100644 > --- a/gcc/cp/lambda.cc > +++ b/gcc/cp/lambda.cc > @@ -1474,7 +1474,7 @@ void > start_lambda_scope (tree decl) > { > gcc_checking_assert (decl); > - if (current_function_decl && TREE_CODE (decl) == VAR_DECL) > + if (current_function_decl && VAR_P (decl)) > // If we're inside a function, we ignore variable scope. Don't push. > lambda_scope.nesting++; > else > diff --git a/gcc/cp/mangle.cc b/gcc/cp/mangle.cc > index a235f23459d..826c5e76c1d 100644 > --- a/gcc/cp/mangle.cc > +++ b/gcc/cp/mangle.cc > @@ -3793,7 +3793,7 @@ write_template_arg (tree node) > } > } > > - if (TREE_CODE (node) == VAR_DECL && DECL_NTTP_OBJECT_P (node)) > + if (VAR_P (node) && DECL_NTTP_OBJECT_P (node)) > /* We want to mangle the argument, not the var we stored it in. */ > node = tparm_object_argument (node); > > diff --git a/gcc/cp/method.cc b/gcc/cp/method.cc > index 00eae56eb5b..cbcc7948b37 100644 > --- a/gcc/cp/method.cc > +++ b/gcc/cp/method.cc > @@ -1048,7 +1048,7 @@ spaceship_comp_cat (tree optype) > { > if (INTEGRAL_OR_ENUMERATION_TYPE_P (optype) || TYPE_PTROBV_P (optype)) > return cc_strong_ordering; > - else if (TREE_CODE (optype) == REAL_TYPE) > + else if (SCALAR_FLOAT_TYPE_P (optype)) > return cc_partial_ordering; > > /* ??? should vector <=> produce a vector of one of the above? */ > diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc > index ac2fe66b080..ecde98d69b4 100644 > --- a/gcc/cp/module.cc > +++ b/gcc/cp/module.cc > @@ -4042,7 +4042,7 @@ node_template_info (tree decl, int &use) > } > } > else if (DECL_LANG_SPECIFIC (decl) > - && (TREE_CODE (decl) == VAR_DECL > + && (VAR_P (decl) > || TREE_CODE (decl) == TYPE_DECL > || TREE_CODE (decl) == FUNCTION_DECL > || TREE_CODE (decl) == FIELD_DECL > @@ -5151,7 +5151,7 @@ trees_out::start (tree t, bool code_streamed) > switch (TREE_CODE (t)) > { > default: > - if (TREE_CODE_CLASS (TREE_CODE (t)) == tcc_vl_exp) > + if (VL_EXP_CLASS_P (t)) > u (VL_EXP_OPERAND_LENGTH (t)); > break; > > @@ -8551,7 +8551,7 @@ trees_out::decl_node (tree decl, walk_kind ref) > { > tinfo: > /* A typeinfo, tt_tinfo_typedef or tt_tinfo_var. */ > - bool is_var = TREE_CODE (decl) == VAR_DECL; > + bool is_var = VAR_P (decl); > tree type = TREE_TYPE (decl); > unsigned ix = get_pseudo_tinfo_index (type); > if (streaming_p ()) > @@ -8651,7 +8651,7 @@ trees_out::decl_node (tree decl, walk_kind ref) > Mostly things that can be defined outside of their (original > declaration) context. */ > gcc_checking_assert (TREE_CODE (decl) == TEMPLATE_DECL > - || TREE_CODE (decl) == VAR_DECL > + || VAR_P (decl) > || TREE_CODE (decl) == FUNCTION_DECL > || TREE_CODE (decl) == TYPE_DECL > || TREE_CODE (decl) == USING_DECL > @@ -11702,7 +11702,7 @@ bool > trees_in::read_var_def (tree decl, tree maybe_template) > { > /* Do not mark the virtual table entries as used. */ > - bool vtable = TREE_CODE (decl) == VAR_DECL && DECL_VTABLE_OR_VTT_P (decl); > + bool vtable = VAR_P (decl) && DECL_VTABLE_OR_VTT_P (decl); > unused += vtable; > tree init = tree_node (); > tree dyn_init = init ? NULL_TREE : tree_node (); > @@ -18776,7 +18776,7 @@ void > set_instantiating_module (tree decl) > { > gcc_assert (TREE_CODE (decl) == FUNCTION_DECL > - || TREE_CODE (decl) == VAR_DECL > + || VAR_P (decl) > || TREE_CODE (decl) == TYPE_DECL > || TREE_CODE (decl) == CONCEPT_DECL > || TREE_CODE (decl) == TEMPLATE_DECL > diff --git a/gcc/cp/name-lookup.cc b/gcc/cp/name-lookup.cc > index ad03141df43..eb5c333b5ea 100644 > --- a/gcc/cp/name-lookup.cc > +++ b/gcc/cp/name-lookup.cc > @@ -3488,7 +3488,7 @@ maybe_record_mergeable_decl (tree *slot, tree name, tree decl) > > tree not_tmpl = STRIP_TEMPLATE (decl); > if ((TREE_CODE (not_tmpl) == FUNCTION_DECL > - || TREE_CODE (not_tmpl) == VAR_DECL) > + || VAR_P (not_tmpl)) > && DECL_THIS_STATIC (not_tmpl)) > /* Internal linkage. */ > return; > @@ -6932,7 +6932,7 @@ consider_decl (tree decl, best_match <tree, const char *> &bm, > { > /* Skip compiler-generated variables (e.g. __for_begin/__for_end > within range for). */ > - if (TREE_CODE (decl) == VAR_DECL && DECL_ARTIFICIAL (decl)) > + if (VAR_P (decl) && DECL_ARTIFICIAL (decl)) > return; > > tree suggestion = DECL_NAME (decl); > @@ -6967,7 +6967,7 @@ maybe_add_fuzzy_decl (auto_vec<tree> &vec, tree decl) > { > /* Skip compiler-generated variables (e.g. __for_begin/__for_end > within range for). */ > - if (TREE_CODE (decl) == VAR_DECL && DECL_ARTIFICIAL (decl)) > + if (VAR_P (decl) && DECL_ARTIFICIAL (decl)) > return false; > > tree suggestion = DECL_NAME (decl); > diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc > index 696df2bdd9f..16d658e3c6a 100644 > --- a/gcc/cp/pt.cc > +++ b/gcc/cp/pt.cc > @@ -7487,7 +7487,7 @@ convert_nontype_argument (tree type, tree expr, tsubst_flags_t complain) > integral promotions (_conv.prom_) and integral conversions > (_conv.integral_) are applied. */ > if (INTEGRAL_OR_ENUMERATION_TYPE_P (type) > - || TREE_CODE (type) == REAL_TYPE) > + || SCALAR_FLOAT_TYPE_P (type)) > { > if (cxx_dialect < cxx11) > { > diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc > index 13c6582b628..05df6282302 100644 > --- a/gcc/cp/semantics.cc > +++ b/gcc/cp/semantics.cc > @@ -5169,7 +5169,7 @@ handle_omp_array_sections_1 (tree c, tree t, vec<tree> &types, > && TREE_CODE (TREE_OPERAND (t, 0)) == COMPONENT_REF) > t = TREE_OPERAND (t, 0); > ret = t; > - while (TREE_CODE (t) == INDIRECT_REF) > + while (INDIRECT_REF_P (t)) > { > t = TREE_OPERAND (t, 0); > STRIP_NOPS (t); > @@ -5206,7 +5206,7 @@ handle_omp_array_sections_1 (tree c, tree t, vec<tree> &types, > } > t = TREE_OPERAND (t, 0); > while (TREE_CODE (t) == MEM_REF > - || TREE_CODE (t) == INDIRECT_REF > + || INDIRECT_REF_P (t) > || TREE_CODE (t) == ARRAY_REF) > { > t = TREE_OPERAND (t, 0); > @@ -8097,7 +8097,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) > if (REFERENCE_REF_P (t)) > t = TREE_OPERAND (t, 0); > if (TREE_CODE (t) == MEM_REF > - || TREE_CODE (t) == INDIRECT_REF) > + || INDIRECT_REF_P (t)) > { > t = TREE_OPERAND (t, 0); > STRIP_NOPS (t); > @@ -8182,7 +8182,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) > && OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_ATTACH_DETACH) > OMP_CLAUSE_DECL (c) = t; > } > - while (TREE_CODE (t) == INDIRECT_REF > + while (INDIRECT_REF_P (t) > || TREE_CODE (t) == ARRAY_REF) > { > t = TREE_OPERAND (t, 0); > @@ -8201,7 +8201,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) > remove = true; > indir_component_ref_p = false; > if (TREE_CODE (t) == COMPONENT_REF > - && (TREE_CODE (TREE_OPERAND (t, 0)) == INDIRECT_REF > + && (INDIRECT_REF_P (TREE_OPERAND (t, 0)) > || TREE_CODE (TREE_OPERAND (t, 0)) == ARRAY_REF)) > { > t = TREE_OPERAND (TREE_OPERAND (t, 0), 0); > @@ -8255,7 +8255,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) > t = TREE_OPERAND (t, 0); > } > while (TREE_CODE (t) == MEM_REF > - || TREE_CODE (t) == INDIRECT_REF > + || INDIRECT_REF_P (t) > || TREE_CODE (t) == ARRAY_REF) > { > t = TREE_OPERAND (t, 0); > @@ -8706,7 +8706,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) > t = OMP_CLAUSE_DECL (c); > while (TREE_CODE (t) == TREE_LIST) > t = TREE_CHAIN (t); > - while (TREE_CODE (t) == INDIRECT_REF > + while (INDIRECT_REF_P (t) > || TREE_CODE (t) == ARRAY_REF) > t = TREE_OPERAND (t, 0); > } > @@ -9021,7 +9021,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) > { > t = OMP_CLAUSE_DECL (c); > while (handled_component_p (t) > - || TREE_CODE (t) == INDIRECT_REF > + || INDIRECT_REF_P (t) > || TREE_CODE (t) == ADDR_EXPR > || TREE_CODE (t) == MEM_REF > || TREE_CODE (t) == NON_LVALUE_EXPR) > @@ -9070,7 +9070,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) > if (TREE_CODE (t) == POINTER_PLUS_EXPR) > t = TREE_OPERAND (t, 0); > if (TREE_CODE (t) == ADDR_EXPR > - || TREE_CODE (t) == INDIRECT_REF) > + || INDIRECT_REF_P (t)) > t = TREE_OPERAND (t, 0); > if (DECL_P (t)) > bitmap_clear_bit (&aligned_head, DECL_UID (t)); > @@ -9609,7 +9609,7 @@ finish_omp_target_clauses_r (tree *tp, int *walk_subtrees, void *ptr) > of DECL_VALUE_EXPRs during the target body walk seems the only way to > find them. */ > if (current_closure > - && (TREE_CODE (t) == VAR_DECL > + && (VAR_P (t) > || TREE_CODE (t) == PARM_DECL > || TREE_CODE (t) == RESULT_DECL) > && DECL_HAS_VALUE_EXPR_P (t) > @@ -12362,8 +12362,8 @@ is_this_parameter (tree t) > if (!DECL_P (t) || DECL_NAME (t) != this_identifier) > return false; > gcc_assert (TREE_CODE (t) == PARM_DECL > - || (TREE_CODE (t) == VAR_DECL && DECL_HAS_VALUE_EXPR_P (t)) > - || (cp_binding_oracle && TREE_CODE (t) == VAR_DECL)); > + || (VAR_P (t) && DECL_HAS_VALUE_EXPR_P (t)) > + || (cp_binding_oracle && VAR_P (t))); > return true; > } > > diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc > index 131b212ff73..19dfb3ed782 100644 > --- a/gcc/cp/tree.cc > +++ b/gcc/cp/tree.cc > @@ -1173,7 +1173,7 @@ build_cplus_array_type (tree elt_type, tree index_type, int dependent) > } > > /* Avoid spurious warnings with VLAs (c++/54583). */ > - if (TYPE_SIZE (t) && EXPR_P (TYPE_SIZE (t))) > + if (CAN_HAVE_LOCATION_P (TYPE_SIZE (t))) Hmm, this change seems undesirable... > suppress_warning (TYPE_SIZE (t), OPT_Wunused); > > /* Push these needs up to the ARRAY_TYPE so that initialization takes > @@ -3911,7 +3911,7 @@ is_this_expression (tree t) > { > t = get_innermost_component (t); > /* See through deferences and no-op conversions. */ > - if (TREE_CODE (t) == INDIRECT_REF) > + if (INDIRECT_REF_P (t)) > t = TREE_OPERAND (t, 0); > if (TREE_CODE (t) == NOP_EXPR) > t = TREE_OPERAND (t, 0); > diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc > index 53ac925a092..a4ceb8a1703 100644 > --- a/gcc/cp/typeck.cc > +++ b/gcc/cp/typeck.cc > @@ -4996,8 +4996,8 @@ do_warn_enum_conversions (location_t loc, enum tree_code code, tree type0, > } > } > else if ((TREE_CODE (type0) == ENUMERAL_TYPE > - && TREE_CODE (type1) == REAL_TYPE) > - || (TREE_CODE (type0) == REAL_TYPE > + && SCALAR_FLOAT_TYPE_P (type1)) > + || (SCALAR_FLOAT_TYPE_P (type0) > && TREE_CODE (type1) == ENUMERAL_TYPE)) > { > const bool enum_first_p = TREE_CODE (type0) == ENUMERAL_TYPE; > diff --git a/gcc/cp/typeck2.cc b/gcc/cp/typeck2.cc > index bf03967a71f..6affdc73fb1 100644 > --- a/gcc/cp/typeck2.cc > +++ b/gcc/cp/typeck2.cc > @@ -907,7 +907,7 @@ store_init_value (tree decl, tree init, vec<tree, va_gc>** cleanups, int flags) > here it should have been digested into an actual value for the type. */ > gcc_checking_assert (TREE_CODE (value) != CONSTRUCTOR > || processing_template_decl > - || TREE_CODE (type) == VECTOR_TYPE > + || VECTOR_TYPE_P (type) > || !TREE_HAS_CONSTRUCTOR (value)); > > /* If the initializer is not a constant, fill in DECL_INITIAL with > @@ -974,7 +974,7 @@ check_narrowing (tree type, tree init, tsubst_flags_t complain, > return ok; > > if (CP_INTEGRAL_TYPE_P (type) > - && TREE_CODE (ftype) == REAL_TYPE) > + && SCALAR_FLOAT_TYPE_P (ftype)) > ok = false; > else if (INTEGRAL_OR_ENUMERATION_TYPE_P (ftype) > && CP_INTEGRAL_TYPE_P (type)) > @@ -992,8 +992,8 @@ check_narrowing (tree type, tree init, tsubst_flags_t complain, > } > /* [dcl.init.list]#7.2: "from long double to double or float, or from > double to float". */ > - else if (TREE_CODE (ftype) == REAL_TYPE > - && TREE_CODE (type) == REAL_TYPE) > + else if (SCALAR_FLOAT_TYPE_P (ftype) > + && SCALAR_FLOAT_TYPE_P (type)) > { > if ((extended_float_type_p (ftype) || extended_float_type_p (type)) > ? /* "from a floating-point type T to another floating-point type > @@ -1030,7 +1030,7 @@ check_narrowing (tree type, tree init, tsubst_flags_t complain, > } > } > else if (INTEGRAL_OR_ENUMERATION_TYPE_P (ftype) > - && TREE_CODE (type) == REAL_TYPE) > + && SCALAR_FLOAT_TYPE_P (type)) > { > ok = false; > if (TREE_CODE (init) == INTEGER_CST) > -- > 2.30.2 >
On Thu, 1 Jun 2023 11:24:06 -0400 Patrick Palka <ppalka@redhat.com> wrote: > On Sat, May 13, 2023 at 7:26 PM Bernhard Reutner-Fischer via > Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc > > index 131b212ff73..19dfb3ed782 100644 > > --- a/gcc/cp/tree.cc > > +++ b/gcc/cp/tree.cc > > @@ -1173,7 +1173,7 @@ build_cplus_array_type (tree elt_type, tree index_type, int dependent) > > } > > > > /* Avoid spurious warnings with VLAs (c++/54583). */ > > - if (TYPE_SIZE (t) && EXPR_P (TYPE_SIZE (t))) > > + if (CAN_HAVE_LOCATION_P (TYPE_SIZE (t))) > > Hmm, this change seems undesirable... mhm, yes that is misleading. I'll prepare a patch to revert this. Let me have a look if there were other such CAN_HAVE_LOCATION_P changes that we'd want to revert. thanks,
Hi David, Patrick, On Thu, 1 Jun 2023 18:33:46 +0200 Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> wrote: > On Thu, 1 Jun 2023 11:24:06 -0400 > Patrick Palka <ppalka@redhat.com> wrote: > > > On Sat, May 13, 2023 at 7:26 PM Bernhard Reutner-Fischer via > > Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > > > diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc > > > index 131b212ff73..19dfb3ed782 100644 > > > --- a/gcc/cp/tree.cc > > > +++ b/gcc/cp/tree.cc > > > @@ -1173,7 +1173,7 @@ build_cplus_array_type (tree elt_type, tree index_type, int dependent) > > > } > > > > > > /* Avoid spurious warnings with VLAs (c++/54583). */ > > > - if (TYPE_SIZE (t) && EXPR_P (TYPE_SIZE (t))) > > > + if (CAN_HAVE_LOCATION_P (TYPE_SIZE (t))) > > > > Hmm, this change seems undesirable... > > mhm, yes that is misleading. I'll prepare a patch to revert this. > Let me have a look if there were other such CAN_HAVE_LOCATION_P changes > that we'd want to revert. Sorry for that! I'd revert the hunk above and the one in gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text), please see attached. Bootstrap running, ok for trunk if it passes? thanks, From 322bce380144b5199cca5775f7a3f0fb30a219ae Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer <aldot@gcc.gnu.org> Date: Thu, 1 Jun 2023 19:44:19 +0200 Subject: [PATCH] c++, analyzer: Expand CAN_HAVE_LOCATION_P macro. r14-985-gca2007a9bb3074 used the collapsed macro definition CAN_HAVE_LOCATION_P in gcc-rich-location.cc and r14-977-g8861c80733da5c in c++'s build_cplus_array_type (). However, although otherwise correct, the usage of CAN_HAVE_LOCATION_P in these two spots is misleading, so this patch reverts aforementioned two hunks. gcc/cp/ChangeLog: * tree.cc (build_cplus_array_type): Revert using the macro CAN_HAVE_LOCATION_P. gcc/ChangeLog: * gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text): Revert using the macro CAN_HAVE_LOCATION_P. --- gcc/cp/tree.cc | 2 +- gcc/gcc-rich-location.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc index 19dfb3ed782..9363166152a 100644 --- a/gcc/cp/tree.cc +++ b/gcc/cp/tree.cc @@ -1173,7 +1173,7 @@ build_cplus_array_type (tree elt_type, tree index_type, int dependent) } /* Avoid spurious warnings with VLAs (c++/54583). */ - if (CAN_HAVE_LOCATION_P (TYPE_SIZE (t))) + if (TYPE_SIZE (t) && EXPR_P (TYPE_SIZE (t))) suppress_warning (TYPE_SIZE (t), OPT_Wunused); /* Push these needs up to the ARRAY_TYPE so that initialization takes diff --git a/gcc/gcc-rich-location.cc b/gcc/gcc-rich-location.cc index edecf07f81e..d02a5144cc6 100644 --- a/gcc/gcc-rich-location.cc +++ b/gcc/gcc-rich-location.cc @@ -200,7 +200,7 @@ maybe_range_label_for_tree_type_mismatch::get_text (unsigned range_idx) const tree expr_type = TREE_TYPE (m_expr); tree other_type = NULL_TREE; - if (CAN_HAVE_LOCATION_P (m_other_expr)) + if (m_other_expr && EXPR_P (m_other_expr)) other_type = TREE_TYPE (m_other_expr); range_label_for_type_mismatch inner (expr_type, other_type);
On Thu, Jun 1, 2023 at 2:11 PM Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> wrote: > > Hi David, Patrick, > > On Thu, 1 Jun 2023 18:33:46 +0200 > Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> wrote: > > > On Thu, 1 Jun 2023 11:24:06 -0400 > > Patrick Palka <ppalka@redhat.com> wrote: > > > > > On Sat, May 13, 2023 at 7:26 PM Bernhard Reutner-Fischer via > > > Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > > > > > diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc > > > > index 131b212ff73..19dfb3ed782 100644 > > > > --- a/gcc/cp/tree.cc > > > > +++ b/gcc/cp/tree.cc > > > > @@ -1173,7 +1173,7 @@ build_cplus_array_type (tree elt_type, tree index_type, int dependent) > > > > } > > > > > > > > /* Avoid spurious warnings with VLAs (c++/54583). */ > > > > - if (TYPE_SIZE (t) && EXPR_P (TYPE_SIZE (t))) > > > > + if (CAN_HAVE_LOCATION_P (TYPE_SIZE (t))) > > > > > > Hmm, this change seems undesirable... > > > > mhm, yes that is misleading. I'll prepare a patch to revert this. > > Let me have a look if there were other such CAN_HAVE_LOCATION_P changes > > that we'd want to revert. > > Sorry for that! > I'd revert the hunk above and the one in gcc-rich-location.cc > (maybe_range_label_for_tree_type_mismatch::get_text), please see > attached. Bootstrap running, ok for trunk if it passes? LGTM! > > thanks,
On 8/2/23 12:51, Patrick Palka via Gcc-patches wrote: > On Thu, Jun 1, 2023 at 2:11 PM Bernhard Reutner-Fischer > <rep.dot.nop@gmail.com> wrote: >> >> Hi David, Patrick, >> >> On Thu, 1 Jun 2023 18:33:46 +0200 >> Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> wrote: >> >>> On Thu, 1 Jun 2023 11:24:06 -0400 >>> Patrick Palka <ppalka@redhat.com> wrote: >>> >>>> On Sat, May 13, 2023 at 7:26 PM Bernhard Reutner-Fischer via >>>> Gcc-patches <gcc-patches@gcc.gnu.org> wrote: >>> >>>>> diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc >>>>> index 131b212ff73..19dfb3ed782 100644 >>>>> --- a/gcc/cp/tree.cc >>>>> +++ b/gcc/cp/tree.cc >>>>> @@ -1173,7 +1173,7 @@ build_cplus_array_type (tree elt_type, tree index_type, int dependent) >>>>> } >>>>> >>>>> /* Avoid spurious warnings with VLAs (c++/54583). */ >>>>> - if (TYPE_SIZE (t) && EXPR_P (TYPE_SIZE (t))) >>>>> + if (CAN_HAVE_LOCATION_P (TYPE_SIZE (t))) >>>> >>>> Hmm, this change seems undesirable... >>> >>> mhm, yes that is misleading. I'll prepare a patch to revert this. >>> Let me have a look if there were other such CAN_HAVE_LOCATION_P changes >>> that we'd want to revert. >> >> Sorry for that! >> I'd revert the hunk above and the one in gcc-rich-location.cc >> (maybe_range_label_for_tree_type_mismatch::get_text), please see >> attached. Bootstrap running, ok for trunk if it passes? > > LGTM! Yes, OK. Jason
On Tue, 8 Aug 2023 16:31:39 -0400 Jason Merrill <jason@redhat.com> wrote: > On 8/2/23 12:51, Patrick Palka via Gcc-patches wrote: > > On Thu, Jun 1, 2023 at 2:11 PM Bernhard Reutner-Fischer > > <rep.dot.nop@gmail.com> wrote: > >> > >> Hi David, Patrick, > >> > >> On Thu, 1 Jun 2023 18:33:46 +0200 > >> Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> wrote: > >> > >>> On Thu, 1 Jun 2023 11:24:06 -0400 > >>> Patrick Palka <ppalka@redhat.com> wrote: > >>> > >>>> On Sat, May 13, 2023 at 7:26 PM Bernhard Reutner-Fischer via > >>>> Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > >>> > >>>>> diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc > >>>>> index 131b212ff73..19dfb3ed782 100644 > >>>>> --- a/gcc/cp/tree.cc > >>>>> +++ b/gcc/cp/tree.cc > >>>>> @@ -1173,7 +1173,7 @@ build_cplus_array_type (tree elt_type, tree index_type, int dependent) > >>>>> } > >>>>> > >>>>> /* Avoid spurious warnings with VLAs (c++/54583). */ > >>>>> - if (TYPE_SIZE (t) && EXPR_P (TYPE_SIZE (t))) > >>>>> + if (CAN_HAVE_LOCATION_P (TYPE_SIZE (t))) > >>>> > >>>> Hmm, this change seems undesirable... > >>> > >>> mhm, yes that is misleading. I'll prepare a patch to revert this. > >>> Let me have a look if there were other such CAN_HAVE_LOCATION_P changes > >>> that we'd want to revert. > >> > >> Sorry for that! > >> I'd revert the hunk above and the one in gcc-rich-location.cc > >> (maybe_range_label_for_tree_type_mismatch::get_text), please see > >> attached. Bootstrap running, ok for trunk if it passes? > > > > LGTM! > > Yes, OK. Now applied as r14-5508 (186331063dfbcf1eacb445c473d92634c9baa90f) thanks
diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc index 2a06520c0c1..6e13d17f6b8 100644 --- a/gcc/cp/call.cc +++ b/gcc/cp/call.cc @@ -2746,7 +2746,7 @@ promoted_arithmetic_type_p (tree type) integral types plus floating types. */ return ((CP_INTEGRAL_TYPE_P (type) && same_type_p (type_promotes_to (type), type)) - || TREE_CODE (type) == REAL_TYPE); + || SCALAR_FLOAT_TYPE_P (type)); } /* Create any builtin operator overload candidates for the operator in @@ -5759,10 +5759,10 @@ build_conditional_expr (const op_location_t &loc, if ((TREE_CODE (arg2) == EXCESS_PRECISION_EXPR || TREE_CODE (arg3) == EXCESS_PRECISION_EXPR) && (TREE_CODE (arg2_type) == INTEGER_TYPE - || TREE_CODE (arg2_type) == REAL_TYPE + || SCALAR_FLOAT_TYPE_P (arg2_type) || TREE_CODE (arg2_type) == COMPLEX_TYPE) && (TREE_CODE (arg3_type) == INTEGER_TYPE - || TREE_CODE (arg3_type) == REAL_TYPE + || SCALAR_FLOAT_TYPE_P (arg3_type) || TREE_CODE (arg3_type) == COMPLEX_TYPE)) { semantic_result_type @@ -5775,8 +5775,8 @@ build_conditional_expr (const op_location_t &loc, t1 = TREE_TYPE (t1); if (TREE_CODE (t2) == COMPLEX_TYPE) t2 = TREE_TYPE (t2); - gcc_checking_assert (TREE_CODE (t1) == REAL_TYPE - && TREE_CODE (t2) == REAL_TYPE + gcc_checking_assert (SCALAR_FLOAT_TYPE_P (t1) + && SCALAR_FLOAT_TYPE_P (t2) && (extended_float_type_p (t1) || extended_float_type_p (t2)) && cp_compare_floating_point_conversion_ranks @@ -6127,8 +6127,8 @@ build_conditional_expr (const op_location_t &loc, t1 = TREE_TYPE (t1); if (TREE_CODE (t2) == COMPLEX_TYPE) t2 = TREE_TYPE (t2); - gcc_checking_assert (TREE_CODE (t1) == REAL_TYPE - && TREE_CODE (t2) == REAL_TYPE + gcc_checking_assert (SCALAR_FLOAT_TYPE_P (t1) + && SCALAR_FLOAT_TYPE_P (t2) && (extended_float_type_p (t1) || extended_float_type_p (t2)) && cp_compare_floating_point_conversion_ranks @@ -6147,8 +6147,8 @@ build_conditional_expr (const op_location_t &loc, t1 = TREE_TYPE (t1); if (TREE_CODE (t2) == COMPLEX_TYPE) t2 = TREE_TYPE (t2); - gcc_checking_assert (TREE_CODE (t1) == REAL_TYPE - && TREE_CODE (t2) == REAL_TYPE + gcc_checking_assert (SCALAR_FLOAT_TYPE_P (t1) + && SCALAR_FLOAT_TYPE_P (t2) && (extended_float_type_p (t1) || extended_float_type_p (t2)) && cp_compare_floating_point_conversion_ranks @@ -6185,8 +6185,8 @@ build_conditional_expr (const op_location_t &loc, else if ((complain & tf_warning) && warn_deprecated_enum_float_conv && ((TREE_CODE (arg2_type) == ENUMERAL_TYPE - && TREE_CODE (arg3_type) == REAL_TYPE) - || (TREE_CODE (arg2_type) == REAL_TYPE + && SCALAR_FLOAT_TYPE_P (arg3_type)) + || (SCALAR_FLOAT_TYPE_P (arg2_type) && TREE_CODE (arg3_type) == ENUMERAL_TYPE))) { if (TREE_CODE (arg2_type) == ENUMERAL_TYPE) @@ -8321,8 +8321,8 @@ convert_like_internal (conversion *convs, tree expr, tree fn, int argnum, "direct-initialization", totype, TREE_TYPE (expr)); - if (TREE_CODE (TREE_TYPE (expr)) == REAL_TYPE - && TREE_CODE (totype) == REAL_TYPE + if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (expr)) + && SCALAR_FLOAT_TYPE_P (totype) && (extended_float_type_p (TREE_TYPE (expr)) || extended_float_type_p (totype))) switch (cp_compare_floating_point_conversion_ranks (TREE_TYPE (expr), @@ -8976,7 +8976,7 @@ convert_arg_to_ellipsis (tree arg, tsubst_flags_t complain) type that is subject to the floating-point promotion (_conv.fpprom_), the value of the argument is converted to the promoted type before the call. */ - if (TREE_CODE (arg_type) == REAL_TYPE + if (SCALAR_FLOAT_TYPE_P (arg_type) && (TYPE_PRECISION (arg_type) < TYPE_PRECISION (double_type_node)) && !DECIMAL_FLOAT_MODE_P (TYPE_MODE (arg_type)) @@ -9798,7 +9798,7 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) obj_arg = NULL_TREE; } /* Look through *(const T *)&obj. */ - else if (obj_arg && TREE_CODE (obj_arg) == INDIRECT_REF) + else if (obj_arg && INDIRECT_REF_P (obj_arg)) { tree addr = TREE_OPERAND (obj_arg, 0); STRIP_NOPS (addr); @@ -10462,7 +10462,7 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) obj_arg = NULL_TREE; } /* Look through *(const T *)&obj. */ - else if (obj_arg && TREE_CODE (obj_arg) == INDIRECT_REF) + else if (obj_arg && INDIRECT_REF_P (obj_arg)) { tree addr = TREE_OPERAND (obj_arg, 0); STRIP_NOPS (addr); @@ -12199,7 +12199,7 @@ compare_ics (conversion *ics1, conversion *ics2) std::swap (fp3, t3); } if (TYPE_MAIN_VARIANT (fp1) == TYPE_MAIN_VARIANT (fp3) - && TREE_CODE (fp1) == REAL_TYPE + && SCALAR_FLOAT_TYPE_P (fp1) /* Only apply this rule if at least one of the 3 types is extended floating-point type, otherwise keep them as before for compatibility reasons with types like __float128. @@ -12207,15 +12207,15 @@ compare_ics (conversion *ics1, conversion *ics2) ranks and so when just those 3 types are involved, this rule doesn't trigger. */ && (extended_float_type_p (fp1) - || (TREE_CODE (fp2) == REAL_TYPE && extended_float_type_p (fp2)) - || (TREE_CODE (t3) == REAL_TYPE && extended_float_type_p (t3)))) + || (SCALAR_FLOAT_TYPE_P (fp2) && extended_float_type_p (fp2)) + || (SCALAR_FLOAT_TYPE_P (t3) && extended_float_type_p (t3)))) { if (TREE_CODE (fp2) != REAL_TYPE) { ret = -ret; std::swap (fp2, t3); } - if (TREE_CODE (fp2) == REAL_TYPE) + if (SCALAR_FLOAT_TYPE_P (fp2)) { /* cp_compare_floating_point_conversion_ranks returns -1, 0 or 1 if the conversion rank is equal (-1 or 1 if the subrank is @@ -12242,7 +12242,7 @@ compare_ics (conversion *ics1, conversion *ics2) FP1 <-> T3 conversion is better. */ return -ret; } - else if (TREE_CODE (t3) == REAL_TYPE + else if (SCALAR_FLOAT_TYPE_P (t3) && IN_RANGE (cp_compare_floating_point_conversion_ranks (fp1, t3), -1, 1)) diff --git a/gcc/cp/class.cc b/gcc/cp/class.cc index 68b62086340..bc84f4f731a 100644 --- a/gcc/cp/class.cc +++ b/gcc/cp/class.cc @@ -673,7 +673,7 @@ convert_to_base_statically (tree expr, tree base) bool is_empty_base_ref (tree expr) { - if (TREE_CODE (expr) == INDIRECT_REF) + if (INDIRECT_REF_P (expr)) expr = TREE_OPERAND (expr, 0); if (TREE_CODE (expr) != NOP_EXPR) return false; diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc index 59a240ebd40..3493d3c6ed3 100644 --- a/gcc/cp/coroutines.cc +++ b/gcc/cp/coroutines.cc @@ -3780,7 +3780,7 @@ rewrite_param_uses (tree *stmt, int *do_subtree ATTRIBUTE_UNUSED, void *d) param_frame_data *data = (param_frame_data *) d; /* For lambda closure content, we have to look specifically. */ - if (TREE_CODE (*stmt) == VAR_DECL && DECL_HAS_VALUE_EXPR_P (*stmt)) + if (VAR_P (*stmt) && DECL_HAS_VALUE_EXPR_P (*stmt)) { tree t = DECL_VALUE_EXPR (*stmt); return cp_walk_tree (&t, rewrite_param_uses, d, NULL); diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 714b6d55f4f..a1b882f11fe 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -3189,7 +3189,7 @@ struct GTY(()) lang_decl { /* Nonzero if NODE has DECL_DISCRIMINATOR and not DECL_ACCESS. */ #define DECL_DISCRIMINATOR_P(NODE) \ - (((TREE_CODE (NODE) == VAR_DECL && TREE_STATIC (NODE)) \ + (((VAR_P (NODE) && TREE_STATIC (NODE)) \ || DECL_IMPLICIT_TYPEDEF_P (NODE)) \ && DECL_FUNCTION_SCOPE_P (NODE)) @@ -4453,7 +4453,7 @@ get_vec_init_expr (tree t) Keep these checks in ascending code order. */ #define ARITHMETIC_TYPE_P(TYPE) \ (CP_INTEGRAL_TYPE_P (TYPE) \ - || TREE_CODE (TYPE) == REAL_TYPE \ + || SCALAR_FLOAT_TYPE_P (TYPE) \ || TREE_CODE (TYPE) == COMPLEX_TYPE) /* [basic.types] diff --git a/gcc/cp/cvt.cc b/gcc/cp/cvt.cc index 17827d06a4a..c6b52f07050 100644 --- a/gcc/cp/cvt.cc +++ b/gcc/cp/cvt.cc @@ -810,7 +810,7 @@ ocp_convert (tree type, tree expr, int convtype, int flags, /* enum = enum, enum = int, enum = float, (enum)pointer are all errors. */ if (((INTEGRAL_OR_ENUMERATION_TYPE_P (intype) - || TREE_CODE (intype) == REAL_TYPE) + || SCALAR_FLOAT_TYPE_P (intype)) && ! (convtype & CONV_STATIC)) || TYPE_PTR_P (intype)) { diff --git a/gcc/cp/cxx-pretty-print.cc b/gcc/cp/cxx-pretty-print.cc index 4b547c77ef4..909a9dc917f 100644 --- a/gcc/cp/cxx-pretty-print.cc +++ b/gcc/cp/cxx-pretty-print.cc @@ -1966,7 +1966,7 @@ pp_cxx_template_argument_list (cxx_pretty_printer *pp, tree t) if (TYPE_P (arg) || (TREE_CODE (arg) == TEMPLATE_DECL && TYPE_P (DECL_TEMPLATE_RESULT (arg)))) pp->type_id (arg); - else if (TREE_CODE (arg) == VAR_DECL && DECL_NTTP_OBJECT_P (arg)) + else if (VAR_P (arg) && DECL_NTTP_OBJECT_P (arg)) pp->expression (DECL_INITIAL (arg)); else pp->expression (arg); diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc index 23a2b2fef0b..a672e4844f1 100644 --- a/gcc/cp/decl.cc +++ b/gcc/cp/decl.cc @@ -6349,7 +6349,7 @@ layout_var_decl (tree decl) && !vec_safe_is_empty (CONSTRUCTOR_ELTS (DECL_INITIAL (decl))) && DECL_SIZE (decl) != NULL_TREE && TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST - && TYPE_SIZE (type) != NULL_TREE + && COMPLETE_TYPE_P (type) && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST && tree_int_cst_equal (DECL_SIZE (decl), TYPE_SIZE (type))) { @@ -8927,7 +8927,7 @@ get_tuple_size (tree type) return NULL_TREE; tree val = lookup_qualified_name (inst, value_identifier, LOOK_want::NORMAL, /*complain*/false); - if (TREE_CODE (val) == VAR_DECL || TREE_CODE (val) == CONST_DECL) + if (VAR_P (val) || TREE_CODE (val) == CONST_DECL) val = maybe_constant_value (val); if (TREE_CODE (val) == INTEGER_CST) return val; diff --git a/gcc/cp/error.cc b/gcc/cp/error.cc index 9b967ce409d..31319aa9e87 100644 --- a/gcc/cp/error.cc +++ b/gcc/cp/error.cc @@ -1140,7 +1140,7 @@ dump_global_iord (cxx_pretty_printer *pp, tree t) static void dump_simple_decl (cxx_pretty_printer *pp, tree t, tree type, int flags) { - if (TREE_CODE (t) == VAR_DECL && DECL_NTTP_OBJECT_P (t)) + if (VAR_P (t) && DECL_NTTP_OBJECT_P (t)) return dump_expr (pp, DECL_INITIAL (t), flags); if (flags & TFF_DECL_SPECIFIERS) diff --git a/gcc/cp/lambda.cc b/gcc/cp/lambda.cc index 9925209b2ed..a359bc6ee8d 100644 --- a/gcc/cp/lambda.cc +++ b/gcc/cp/lambda.cc @@ -1474,7 +1474,7 @@ void start_lambda_scope (tree decl) { gcc_checking_assert (decl); - if (current_function_decl && TREE_CODE (decl) == VAR_DECL) + if (current_function_decl && VAR_P (decl)) // If we're inside a function, we ignore variable scope. Don't push. lambda_scope.nesting++; else diff --git a/gcc/cp/mangle.cc b/gcc/cp/mangle.cc index a235f23459d..826c5e76c1d 100644 --- a/gcc/cp/mangle.cc +++ b/gcc/cp/mangle.cc @@ -3793,7 +3793,7 @@ write_template_arg (tree node) } } - if (TREE_CODE (node) == VAR_DECL && DECL_NTTP_OBJECT_P (node)) + if (VAR_P (node) && DECL_NTTP_OBJECT_P (node)) /* We want to mangle the argument, not the var we stored it in. */ node = tparm_object_argument (node); diff --git a/gcc/cp/method.cc b/gcc/cp/method.cc index 00eae56eb5b..cbcc7948b37 100644 --- a/gcc/cp/method.cc +++ b/gcc/cp/method.cc @@ -1048,7 +1048,7 @@ spaceship_comp_cat (tree optype) { if (INTEGRAL_OR_ENUMERATION_TYPE_P (optype) || TYPE_PTROBV_P (optype)) return cc_strong_ordering; - else if (TREE_CODE (optype) == REAL_TYPE) + else if (SCALAR_FLOAT_TYPE_P (optype)) return cc_partial_ordering; /* ??? should vector <=> produce a vector of one of the above? */ diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc index ac2fe66b080..ecde98d69b4 100644 --- a/gcc/cp/module.cc +++ b/gcc/cp/module.cc @@ -4042,7 +4042,7 @@ node_template_info (tree decl, int &use) } } else if (DECL_LANG_SPECIFIC (decl) - && (TREE_CODE (decl) == VAR_DECL + && (VAR_P (decl) || TREE_CODE (decl) == TYPE_DECL || TREE_CODE (decl) == FUNCTION_DECL || TREE_CODE (decl) == FIELD_DECL @@ -5151,7 +5151,7 @@ trees_out::start (tree t, bool code_streamed) switch (TREE_CODE (t)) { default: - if (TREE_CODE_CLASS (TREE_CODE (t)) == tcc_vl_exp) + if (VL_EXP_CLASS_P (t)) u (VL_EXP_OPERAND_LENGTH (t)); break; @@ -8551,7 +8551,7 @@ trees_out::decl_node (tree decl, walk_kind ref) { tinfo: /* A typeinfo, tt_tinfo_typedef or tt_tinfo_var. */ - bool is_var = TREE_CODE (decl) == VAR_DECL; + bool is_var = VAR_P (decl); tree type = TREE_TYPE (decl); unsigned ix = get_pseudo_tinfo_index (type); if (streaming_p ()) @@ -8651,7 +8651,7 @@ trees_out::decl_node (tree decl, walk_kind ref) Mostly things that can be defined outside of their (original declaration) context. */ gcc_checking_assert (TREE_CODE (decl) == TEMPLATE_DECL - || TREE_CODE (decl) == VAR_DECL + || VAR_P (decl) || TREE_CODE (decl) == FUNCTION_DECL || TREE_CODE (decl) == TYPE_DECL || TREE_CODE (decl) == USING_DECL @@ -11702,7 +11702,7 @@ bool trees_in::read_var_def (tree decl, tree maybe_template) { /* Do not mark the virtual table entries as used. */ - bool vtable = TREE_CODE (decl) == VAR_DECL && DECL_VTABLE_OR_VTT_P (decl); + bool vtable = VAR_P (decl) && DECL_VTABLE_OR_VTT_P (decl); unused += vtable; tree init = tree_node (); tree dyn_init = init ? NULL_TREE : tree_node (); @@ -18776,7 +18776,7 @@ void set_instantiating_module (tree decl) { gcc_assert (TREE_CODE (decl) == FUNCTION_DECL - || TREE_CODE (decl) == VAR_DECL + || VAR_P (decl) || TREE_CODE (decl) == TYPE_DECL || TREE_CODE (decl) == CONCEPT_DECL || TREE_CODE (decl) == TEMPLATE_DECL diff --git a/gcc/cp/name-lookup.cc b/gcc/cp/name-lookup.cc index ad03141df43..eb5c333b5ea 100644 --- a/gcc/cp/name-lookup.cc +++ b/gcc/cp/name-lookup.cc @@ -3488,7 +3488,7 @@ maybe_record_mergeable_decl (tree *slot, tree name, tree decl) tree not_tmpl = STRIP_TEMPLATE (decl); if ((TREE_CODE (not_tmpl) == FUNCTION_DECL - || TREE_CODE (not_tmpl) == VAR_DECL) + || VAR_P (not_tmpl)) && DECL_THIS_STATIC (not_tmpl)) /* Internal linkage. */ return; @@ -6932,7 +6932,7 @@ consider_decl (tree decl, best_match <tree, const char *> &bm, { /* Skip compiler-generated variables (e.g. __for_begin/__for_end within range for). */ - if (TREE_CODE (decl) == VAR_DECL && DECL_ARTIFICIAL (decl)) + if (VAR_P (decl) && DECL_ARTIFICIAL (decl)) return; tree suggestion = DECL_NAME (decl); @@ -6967,7 +6967,7 @@ maybe_add_fuzzy_decl (auto_vec<tree> &vec, tree decl) { /* Skip compiler-generated variables (e.g. __for_begin/__for_end within range for). */ - if (TREE_CODE (decl) == VAR_DECL && DECL_ARTIFICIAL (decl)) + if (VAR_P (decl) && DECL_ARTIFICIAL (decl)) return false; tree suggestion = DECL_NAME (decl); diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc index 696df2bdd9f..16d658e3c6a 100644 --- a/gcc/cp/pt.cc +++ b/gcc/cp/pt.cc @@ -7487,7 +7487,7 @@ convert_nontype_argument (tree type, tree expr, tsubst_flags_t complain) integral promotions (_conv.prom_) and integral conversions (_conv.integral_) are applied. */ if (INTEGRAL_OR_ENUMERATION_TYPE_P (type) - || TREE_CODE (type) == REAL_TYPE) + || SCALAR_FLOAT_TYPE_P (type)) { if (cxx_dialect < cxx11) { diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc index 13c6582b628..05df6282302 100644 --- a/gcc/cp/semantics.cc +++ b/gcc/cp/semantics.cc @@ -5169,7 +5169,7 @@ handle_omp_array_sections_1 (tree c, tree t, vec<tree> &types, && TREE_CODE (TREE_OPERAND (t, 0)) == COMPONENT_REF) t = TREE_OPERAND (t, 0); ret = t; - while (TREE_CODE (t) == INDIRECT_REF) + while (INDIRECT_REF_P (t)) { t = TREE_OPERAND (t, 0); STRIP_NOPS (t); @@ -5206,7 +5206,7 @@ handle_omp_array_sections_1 (tree c, tree t, vec<tree> &types, } t = TREE_OPERAND (t, 0); while (TREE_CODE (t) == MEM_REF - || TREE_CODE (t) == INDIRECT_REF + || INDIRECT_REF_P (t) || TREE_CODE (t) == ARRAY_REF) { t = TREE_OPERAND (t, 0); @@ -8097,7 +8097,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) if (REFERENCE_REF_P (t)) t = TREE_OPERAND (t, 0); if (TREE_CODE (t) == MEM_REF - || TREE_CODE (t) == INDIRECT_REF) + || INDIRECT_REF_P (t)) { t = TREE_OPERAND (t, 0); STRIP_NOPS (t); @@ -8182,7 +8182,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) && OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_ATTACH_DETACH) OMP_CLAUSE_DECL (c) = t; } - while (TREE_CODE (t) == INDIRECT_REF + while (INDIRECT_REF_P (t) || TREE_CODE (t) == ARRAY_REF) { t = TREE_OPERAND (t, 0); @@ -8201,7 +8201,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) remove = true; indir_component_ref_p = false; if (TREE_CODE (t) == COMPONENT_REF - && (TREE_CODE (TREE_OPERAND (t, 0)) == INDIRECT_REF + && (INDIRECT_REF_P (TREE_OPERAND (t, 0)) || TREE_CODE (TREE_OPERAND (t, 0)) == ARRAY_REF)) { t = TREE_OPERAND (TREE_OPERAND (t, 0), 0); @@ -8255,7 +8255,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) t = TREE_OPERAND (t, 0); } while (TREE_CODE (t) == MEM_REF - || TREE_CODE (t) == INDIRECT_REF + || INDIRECT_REF_P (t) || TREE_CODE (t) == ARRAY_REF) { t = TREE_OPERAND (t, 0); @@ -8706,7 +8706,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) t = OMP_CLAUSE_DECL (c); while (TREE_CODE (t) == TREE_LIST) t = TREE_CHAIN (t); - while (TREE_CODE (t) == INDIRECT_REF + while (INDIRECT_REF_P (t) || TREE_CODE (t) == ARRAY_REF) t = TREE_OPERAND (t, 0); } @@ -9021,7 +9021,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) { t = OMP_CLAUSE_DECL (c); while (handled_component_p (t) - || TREE_CODE (t) == INDIRECT_REF + || INDIRECT_REF_P (t) || TREE_CODE (t) == ADDR_EXPR || TREE_CODE (t) == MEM_REF || TREE_CODE (t) == NON_LVALUE_EXPR) @@ -9070,7 +9070,7 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort) if (TREE_CODE (t) == POINTER_PLUS_EXPR) t = TREE_OPERAND (t, 0); if (TREE_CODE (t) == ADDR_EXPR - || TREE_CODE (t) == INDIRECT_REF) + || INDIRECT_REF_P (t)) t = TREE_OPERAND (t, 0); if (DECL_P (t)) bitmap_clear_bit (&aligned_head, DECL_UID (t)); @@ -9609,7 +9609,7 @@ finish_omp_target_clauses_r (tree *tp, int *walk_subtrees, void *ptr) of DECL_VALUE_EXPRs during the target body walk seems the only way to find them. */ if (current_closure - && (TREE_CODE (t) == VAR_DECL + && (VAR_P (t) || TREE_CODE (t) == PARM_DECL || TREE_CODE (t) == RESULT_DECL) && DECL_HAS_VALUE_EXPR_P (t) @@ -12362,8 +12362,8 @@ is_this_parameter (tree t) if (!DECL_P (t) || DECL_NAME (t) != this_identifier) return false; gcc_assert (TREE_CODE (t) == PARM_DECL - || (TREE_CODE (t) == VAR_DECL && DECL_HAS_VALUE_EXPR_P (t)) - || (cp_binding_oracle && TREE_CODE (t) == VAR_DECL)); + || (VAR_P (t) && DECL_HAS_VALUE_EXPR_P (t)) + || (cp_binding_oracle && VAR_P (t))); return true; } diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc index 131b212ff73..19dfb3ed782 100644 --- a/gcc/cp/tree.cc +++ b/gcc/cp/tree.cc @@ -1173,7 +1173,7 @@ build_cplus_array_type (tree elt_type, tree index_type, int dependent) } /* Avoid spurious warnings with VLAs (c++/54583). */ - if (TYPE_SIZE (t) && EXPR_P (TYPE_SIZE (t))) + if (CAN_HAVE_LOCATION_P (TYPE_SIZE (t))) suppress_warning (TYPE_SIZE (t), OPT_Wunused); /* Push these needs up to the ARRAY_TYPE so that initialization takes @@ -3911,7 +3911,7 @@ is_this_expression (tree t) { t = get_innermost_component (t); /* See through deferences and no-op conversions. */ - if (TREE_CODE (t) == INDIRECT_REF) + if (INDIRECT_REF_P (t)) t = TREE_OPERAND (t, 0); if (TREE_CODE (t) == NOP_EXPR) t = TREE_OPERAND (t, 0); diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc index 53ac925a092..a4ceb8a1703 100644 --- a/gcc/cp/typeck.cc +++ b/gcc/cp/typeck.cc @@ -4996,8 +4996,8 @@ do_warn_enum_conversions (location_t loc, enum tree_code code, tree type0, } } else if ((TREE_CODE (type0) == ENUMERAL_TYPE - && TREE_CODE (type1) == REAL_TYPE) - || (TREE_CODE (type0) == REAL_TYPE + && SCALAR_FLOAT_TYPE_P (type1)) + || (SCALAR_FLOAT_TYPE_P (type0) && TREE_CODE (type1) == ENUMERAL_TYPE)) { const bool enum_first_p = TREE_CODE (type0) == ENUMERAL_TYPE; diff --git a/gcc/cp/typeck2.cc b/gcc/cp/typeck2.cc index bf03967a71f..6affdc73fb1 100644 --- a/gcc/cp/typeck2.cc +++ b/gcc/cp/typeck2.cc @@ -907,7 +907,7 @@ store_init_value (tree decl, tree init, vec<tree, va_gc>** cleanups, int flags) here it should have been digested into an actual value for the type. */ gcc_checking_assert (TREE_CODE (value) != CONSTRUCTOR || processing_template_decl - || TREE_CODE (type) == VECTOR_TYPE + || VECTOR_TYPE_P (type) || !TREE_HAS_CONSTRUCTOR (value)); /* If the initializer is not a constant, fill in DECL_INITIAL with @@ -974,7 +974,7 @@ check_narrowing (tree type, tree init, tsubst_flags_t complain, return ok; if (CP_INTEGRAL_TYPE_P (type) - && TREE_CODE (ftype) == REAL_TYPE) + && SCALAR_FLOAT_TYPE_P (ftype)) ok = false; else if (INTEGRAL_OR_ENUMERATION_TYPE_P (ftype) && CP_INTEGRAL_TYPE_P (type)) @@ -992,8 +992,8 @@ check_narrowing (tree type, tree init, tsubst_flags_t complain, } /* [dcl.init.list]#7.2: "from long double to double or float, or from double to float". */ - else if (TREE_CODE (ftype) == REAL_TYPE - && TREE_CODE (type) == REAL_TYPE) + else if (SCALAR_FLOAT_TYPE_P (ftype) + && SCALAR_FLOAT_TYPE_P (type)) { if ((extended_float_type_p (ftype) || extended_float_type_p (type)) ? /* "from a floating-point type T to another floating-point type @@ -1030,7 +1030,7 @@ check_narrowing (tree type, tree init, tsubst_flags_t complain, } } else if (INTEGRAL_OR_ENUMERATION_TYPE_P (ftype) - && TREE_CODE (type) == REAL_TYPE) + && SCALAR_FLOAT_TYPE_P (type)) { ok = false; if (TREE_CODE (init) == INTEGER_CST)
From: Bernhard Reutner-Fischer <aldot@gcc.gnu.org> gcc/cp/ChangeLog: * call.cc (promoted_arithmetic_type_p): Use _P defines from tree.h. (build_conditional_expr): Ditto. (convert_like_internal): Ditto. (convert_arg_to_ellipsis): Ditto. (build_over_call): Ditto. (compare_ics): Ditto. * class.cc (is_empty_base_ref): Ditto. * coroutines.cc (rewrite_param_uses): Ditto. * cp-tree.h (DECL_DISCRIMINATOR_P): Ditto. (ARITHMETIC_TYPE_P): Ditto. * cvt.cc (ocp_convert): Ditto. * cxx-pretty-print.cc (pp_cxx_template_argument_list): Ditto. * decl.cc (layout_var_decl): Ditto. (get_tuple_size): Ditto. * error.cc (dump_simple_decl): Ditto. * lambda.cc (start_lambda_scope): Ditto. * mangle.cc (write_template_arg): Ditto. * method.cc (spaceship_comp_cat): Ditto. * module.cc (node_template_info): Ditto. (trees_out::start): Ditto. (trees_out::decl_node): Ditto. (trees_in::read_var_def): Ditto. (set_instantiating_module): Ditto. * name-lookup.cc (maybe_record_mergeable_decl): Ditto. (consider_decl): Ditto. (maybe_add_fuzzy_decl): Ditto. * pt.cc (convert_nontype_argument): Ditto. * semantics.cc (handle_omp_array_sections_1): Ditto. (finish_omp_clauses): Ditto. (finish_omp_target_clauses_r): Ditto. (is_this_parameter): Ditto. * tree.cc (build_cplus_array_type): Ditto. (is_this_expression): Ditto. * typeck.cc (do_warn_enum_conversions): Ditto. * typeck2.cc (store_init_value): Ditto. (check_narrowing): Ditto. --- gcc/cp/call.cc | 42 +++++++++++++++++++------------------- gcc/cp/class.cc | 2 +- gcc/cp/coroutines.cc | 2 +- gcc/cp/cp-tree.h | 4 ++-- gcc/cp/cvt.cc | 2 +- gcc/cp/cxx-pretty-print.cc | 2 +- gcc/cp/decl.cc | 4 ++-- gcc/cp/error.cc | 2 +- gcc/cp/lambda.cc | 2 +- gcc/cp/mangle.cc | 2 +- gcc/cp/method.cc | 2 +- gcc/cp/module.cc | 12 +++++------ gcc/cp/name-lookup.cc | 6 +++--- gcc/cp/pt.cc | 2 +- gcc/cp/semantics.cc | 24 +++++++++++----------- gcc/cp/tree.cc | 4 ++-- gcc/cp/typeck.cc | 4 ++-- gcc/cp/typeck2.cc | 10 ++++----- 18 files changed, 64 insertions(+), 64 deletions(-)