aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2011-10-19 22:45:58 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2011-10-19 22:45:58 +0000
commitc3c1f2b7bdce26985fd0e5aa4cefb59e6e0e3150 (patch)
treea02fd41d6c61be0f14c97b3b7e62f955d2f52009 /gcc
parent875bcfdbf412ba625cf9ee9e1bd6610c0ad5b5f8 (diff)
downloadgcc-c3c1f2b7bdce26985fd0e5aa4cefb59e6e0e3150.zip
gcc-c3c1f2b7bdce26985fd0e5aa4cefb59e6e0e3150.tar.gz
gcc-c3c1f2b7bdce26985fd0e5aa4cefb59e6e0e3150.tar.bz2
re PR c++/13657 (Error message incorrectly describes return type as argument type)
/cp 2011-10-19 Paolo Carlini <paolo.carlini@oracle.com> PR c++/13657 * class.c (instantiate_type): Fix error message. /testsuite 2011-10-19 Paolo Carlini <paolo.carlini@oracle.com> PR c++/13657 * g++.dg/parse/error42.C: New. * g++.old-deja/g++.other/ptrmem7.C: Tweak dg-errors. From-SVN: r180228
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/class.c4
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/parse/error42.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C4
5 files changed, 19 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 8e9bb4a..a32a7b9 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2011-10-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/13657
+ * class.c (instantiate_type): Fix error message.
+
2011-10-19 Jason Merrill <jason@redhat.com>
PR c++/50793
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index c8efc7e..ee6ca04 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -6867,8 +6867,8 @@ instantiate_type (tree lhstype, tree rhs, tsubst_flags_t flags)
else
{
if (flags & tf_error)
- error ("argument of type %qT does not match %qT",
- TREE_TYPE (rhs), lhstype);
+ error ("cannot convert %qE from type %qT to type %qT",
+ rhs, TREE_TYPE (rhs), lhstype);
return error_mark_node;
}
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 173f195..709fae4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2011-10-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/13657
+ * g++.dg/parse/error42.C: New.
+ * g++.old-deja/g++.other/ptrmem7.C: Tweak dg-errors.
+
2011-10-19 Jason Merrill <jason@redhat.com>
PR c++/50793
diff --git a/gcc/testsuite/g++.dg/parse/error42.C b/gcc/testsuite/g++.dg/parse/error42.C
new file mode 100644
index 0000000..5e4c5bb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/error42.C
@@ -0,0 +1,4 @@
+// PR c++/13657
+
+class C { public: int (*f())(); int bar(); };
+int (*C::f())() { return C::bar; } // { dg-error "cannot convert 'C::bar'" }
diff --git a/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C b/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C
index b04f7e2..987c044 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C
@@ -31,9 +31,9 @@ void A::foo ()
int (*ptr8) (short) = ns;
int (A::*ptr11) (int) = &A::single;
- int (A::*ptr12) (int) = A::single; // { dg-error "match" }
+ int (A::*ptr12) (int) = A::single; // { dg-error "cannot convert" }
int (A::*ptr13) (int) = &single; // { dg-error "pointer to member" }
- int (A::*ptr14) (int) = single; // { dg-error "match" }
+ int (A::*ptr14) (int) = single; // { dg-error "cannot convert" }
int (A::*ptr20) (int) = &(A::ns); // { dg-error "pointer to member" }
int (A::*ptr21) (int) = &(A::single); // { dg-error "pointer to member" }