aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-03-18 15:07:04 +0000
committerJason Merrill <jason@redhat.com>2011-03-18 15:07:04 +0000
commitbb209e56cf1963594f42d57f45d494e247daf92a (patch)
tree22180fc51591043f48d923f17662442d4ae7437c
parent6341eeea921ef348a813feb217f20a5950e44914 (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/ChangeLog5
-rw-r--r--gcc/cp/call.c6
-rw-r--r--gcc/testsuite/ChangeLog2
-rw-r--r--gcc/testsuite/g++.dg/overload/volatile1.C14
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" }
+}