summaryrefslogtreecommitdiffstats
path: root/gcc/cp/call.c
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-23 04:27:43 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-23 04:27:43 +0000
commit144b133c97e56a6c223284f75fd70c6b35833cfe (patch)
treef57a654d7d398768f77828698988e68d40c86e2e /gcc/cp/call.c
parent00fe10b0093a5cb120088dd7363e2177d0fed07d (diff)
downloadppe42-gcc-144b133c97e56a6c223284f75fd70c6b35833cfe.tar.gz
ppe42-gcc-144b133c97e56a6c223284f75fd70c6b35833cfe.zip
PR c++/23372
* call.c (build_over_call): Don't make a copy here if build_call will make one too. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116342 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/call.c')
-rw-r--r--gcc/cp/call.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index ea89cdfed77..a91ecd015f8 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -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);
OpenPOWER on IntegriCloud