aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2013-05-20 09:44:20 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-05-20 09:44:20 +0000
commita293ed6ec64c9a5364c72fc96e08e345d0104822 (patch)
treedae55493a02921988249ef74b2211920c168eae5
parentde4317cce2a72cc333afdeb11e19786eb25cbf33 (diff)
downloadgcc-a293ed6ec64c9a5364c72fc96e08e345d0104822.zip
gcc-a293ed6ec64c9a5364c72fc96e08e345d0104822.tar.gz
gcc-a293ed6ec64c9a5364c72fc96e08e345d0104822.tar.bz2
re PR c++/57327 ('derived' is an ambiguous base class of 'base' diagnostic is backwards)
/cp 2013-05-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/57327 * pt.c (unify_no_common_base): Swap arg and parm arguments to inform. /testsuite 2013-05-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/57327 * g++.dg/template/error50.C: New. From-SVN: r199097
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/pt.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/template/error50.C19
4 files changed, 30 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index dd53e69..9d8ad50 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,10 @@
2013-05-20 Paolo Carlini <paolo.carlini@oracle.com>
+ PR c++/57327
+ * pt.c (unify_no_common_base): Swap arg and parm arguments to inform.
+
+2013-05-20 Paolo Carlini <paolo.carlini@oracle.com>
+
PR c++/10207
* parser.c (cp_parser_postfix_expression): Use cp_parser_braced_list
instead of cp_parser_initializer_list for compound-literals.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index b0be950..7b80b91 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -5375,7 +5375,7 @@ unify_no_common_base (bool explain_p, enum template_base_result r,
{
case tbr_ambiguous_baseclass:
inform (input_location, " %qT is an ambiguous base class of %qT",
- arg, parm);
+ parm, arg);
break;
default:
inform (input_location, " %qT is not derived from %qT", arg, parm);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dfde009..52c52ac 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2013-05-20 Paolo Carlini <paolo.carlini@oracle.com>
+ PR c++/57327
+ * g++.dg/template/error50.C: New.
+
+2013-05-20 Paolo Carlini <paolo.carlini@oracle.com>
+
PR c++/10207
* g++.dg/ext/complit13.C: New.
diff --git a/gcc/testsuite/g++.dg/template/error50.C b/gcc/testsuite/g++.dg/template/error50.C
new file mode 100644
index 0000000..d8702f8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/error50.C
@@ -0,0 +1,19 @@
+// PR c++/57327
+
+template<class T>
+struct A {};
+
+template<class T>
+void f(A<T>&) {}
+
+struct B : A<long> {};
+
+struct C : A<char> {};
+
+struct D : B, C {};
+
+int main()
+{
+ D d;
+ f(d); // { dg-error "no matching" }
+} // { dg-message "'A<T>' is an ambiguous base" "" { target *-*-* } 18 }