From fcb13a10e4053a9d6426093b9c733634339a022f Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Sun, 20 Nov 2011 22:37:54 +0000 Subject: [PATCH] re PR c++/51230 (Broken diagnostic: 'template_parm_index' not supported by dump_type) /cp 2011-11-20 Paolo Carlini PR c++/51230 * pt.c (unify_inconsistency): Handle non-type parameters better. * error.c (dump_expr): Handle TEMPLATE_TEMPLATE_PARM. /cp 2011-11-20 Paolo Carlini PR c++/51230 * g++.dg/template/error46.C: New. From-SVN: r181538 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/error.c | 1 + gcc/cp/pt.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/template/error46.C | 11 +++++++++++ 5 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/template/error46.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 96e4d20a1d7..1bc0e5a05ab 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2011-11-20 Paolo Carlini + + PR c++/51230 + * pt.c (unify_inconsistency): Handle non-type parameters better. + * error.c (dump_expr): Handle TEMPLATE_TEMPLATE_PARM. + 2011-11-20 Dodji Seketeli PR c++/51194 diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 602cb75236a..4940a783353 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -2406,6 +2406,7 @@ dump_expr (tree t, int flags) break; case TEMPLATE_TYPE_PARM: + case TEMPLATE_TEMPLATE_PARM: case BOUND_TEMPLATE_TEMPLATE_PARM: dump_type (t, flags); break; diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 2b02fa4269d..f4eb1d4852a 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -5501,7 +5501,7 @@ unify_inconsistency (bool explain_p, tree parm, tree first, tree second) { if (explain_p) inform (input_location, - " deduced conflicting types for parameter %qT (%qT and %qT)", + " conflicting deductions for parameter %qE (%qE and %qE)", parm, first, second); return 1; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2a9c6d101db..8b2f661ec77 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-11-20 Paolo Carlini + + PR c++/51230 + * g++.dg/template/error46.C: New. + 2011-11-20 Uros Bizjak PR target/51235 diff --git a/gcc/testsuite/g++.dg/template/error46.C b/gcc/testsuite/g++.dg/template/error46.C new file mode 100644 index 00000000000..0f4bdafb8a4 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/error46.C @@ -0,0 +1,11 @@ +// PR c++/51230 + +template struct A {}; + +template void foo(A, A); // { dg-message "template" } + +void bar() +{ + foo(A<0>(), A<1>()); // { dg-error "no matching" } +} +// { dg-message "candidate|parameter 'N' ('0' and '1')" { target *-*-* } 9 } -- 2.30.2