From: jason Date: Wed, 6 Dec 2017 22:31:47 +0000 (+0000) Subject: Correct argument to targetm.calls.promote_prototypes. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d279e49d07bb09fd8ba5f5926ff819cd88aa7f7d;p=thirdparty%2Fgcc.git 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@255455 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1620b0762a58..d8702e3bed98 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 e04626863af5..bd7666d72bb8 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)))