From c25ac92773ac357a9dfb831ded2e071f04ec7735 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 6 Dec 2017 17:31:47 -0500 Subject: [PATCH] Correct argument to targetm.calls.promote_prototypes. * call.c (convert_for_arg_passing): Pass NULL_TREE to targetm.calls.promote_prototypes. (type_passed_as): Likewise. From-SVN: r255455 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/call.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1620b0762a5..d8702e3bed9 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2017-12-06 Jason Merrill + * call.c (convert_for_arg_passing): Pass NULL_TREE to + targetm.calls.promote_prototypes. + (type_passed_as): Likewise. + PR c++/82115 - ICE with variable initialized with its own address. * pt.c (value_dependent_expression_p): Add lval parameter. Don't consider DECL_INITIAL if it's true. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index e04626863af..bd7666d72bb 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -7350,7 +7350,7 @@ type_passed_as (tree type) /* There are no other pointers to this temporary. */ type = cp_build_qualified_type (type, TYPE_QUAL_RESTRICT); } - else if (targetm.calls.promote_prototypes (type) + else if (targetm.calls.promote_prototypes (NULL_TREE) && INTEGRAL_TYPE_P (type) && COMPLETE_TYPE_P (type) && tree_int_cst_lt (TYPE_SIZE (type), TYPE_SIZE (integer_type_node))) @@ -7390,7 +7390,7 @@ convert_for_arg_passing (tree type, tree val, tsubst_flags_t complain) /* Pass classes with copy ctors by invisible reference. */ else if (TREE_ADDRESSABLE (type)) val = build1 (ADDR_EXPR, build_reference_type (type), val); - else if (targetm.calls.promote_prototypes (type) + else if (targetm.calls.promote_prototypes (NULL_TREE) && INTEGRAL_TYPE_P (type) && COMPLETE_TYPE_P (type) && tree_int_cst_lt (TYPE_SIZE (type), TYPE_SIZE (integer_type_node))) -- 2.30.2