diff options
author | Jason Merrill <jason@redhat.com> | 2011-03-18 15:07:04 +0000 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2011-03-18 15:07:04 +0000 |
commit | bb209e56cf1963594f42d57f45d494e247daf92a (patch) | |
tree | 22180fc51591043f48d923f17662442d4ae7437c | |
parent | 6341eeea921ef348a813feb217f20a5950e44914 (diff) |
PR c++/48118
* call.c (build_over_call): Don't skip ck_rvalue.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@171147 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/call.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/overload/volatile1.C | 14 |
4 files changed, 21 insertions, 6 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 51535f5168b..9578f1abf36 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2011-03-18 Jason Merrill <jason@redhat.com> + + PR c++/48118 + * call.c (build_over_call): Don't skip ck_rvalue. + 2011-03-17 Jason Merrill <jason@redhat.com> PR c++/47504 diff --git a/gcc/cp/call.c b/gcc/cp/call.c index d040ec85072..93383c69f07 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -6168,12 +6168,6 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) conv = convs[i]; - /* Don't make a copy here if build_call is going to. */ - if (conv->kind == ck_rvalue - && COMPLETE_TYPE_P (complete_type (type)) - && !TREE_ADDRESSABLE (type)) - conv = conv->u.next; - /* Warn about initializer_list deduction that isn't currently in the working draft. */ if (cxx_dialect > cxx98 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b9c7dd84400..b0f4f53566d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,7 @@ 2011-03-18 Jason Merrill <jason@redhat.com> + * g++.dg/overload/volatile1.C: New. + * g++.dg/opt/pr23372.C: New. * g++.dg/ext/attrib32.C: Expect errors on the two-names case. diff --git a/gcc/testsuite/g++.dg/overload/volatile1.C b/gcc/testsuite/g++.dg/overload/volatile1.C new file mode 100644 index 00000000000..baf467d8182 --- /dev/null +++ b/gcc/testsuite/g++.dg/overload/volatile1.C @@ -0,0 +1,14 @@ +// PR c++/48118 +// { dg-prune-output "note" } + +struct A { }; + +void f (A); // { dg-error "argument 1" } +void (*g)(A); + +int main() +{ + volatile A a; + f(a); // { dg-error "no match" } + g(a); // { dg-error "no match" } +} |