re PR c++/23372 (Temporary aggregate copy not elided when passing parameters by value)

PR c++/23372
        * call.c (build_over_call): Don't make a copy here if build_call
        will make one too.

From-SVN: r116342
This commit is contained in:
Jason Merrill 2006-08-23 00:27:43 -04:00 committed by Jason Merrill
parent c846e8cd67
commit a5c4274085
2 changed files with 12 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2006-08-22 Jason Merrill <jason@redhat.com>
PR c++/23372
* call.c (build_over_call): Don't make a copy here if build_call
will make one too.
2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
PR C++/28450

View file

@ -4847,6 +4847,12 @@ build_over_call (struct z_candidate *cand, int flags)
tree type = TREE_VALUE (parm);
conv = convs[i];
/* Don't make a copy here if build_call is going to. */
if (conv->kind == ck_rvalue
&& !TREE_ADDRESSABLE (complete_type (type)))
conv = conv->u.next;
val = convert_like_with_context
(conv, TREE_VALUE (arg), fn, i - is_method);