diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2013-05-20 09:44:20 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2013-05-20 09:44:20 +0000 |
commit | a293ed6ec64c9a5364c72fc96e08e345d0104822 (patch) | |
tree | dae55493a02921988249ef74b2211920c168eae5 | |
parent | de4317cce2a72cc333afdeb11e19786eb25cbf33 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/pt.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/error50.C | 19 |
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 } |