diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2011-11-20 22:37:54 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2011-11-20 22:37:54 +0000 |
commit | fcb13a10e4053a9d6426093b9c733634339a022f (patch) | |
tree | 23e25716ad6ee1f32e6e1c034f6d8c096553e990 /gcc | |
parent | fd9ee5972eb7ceb1e8da07b854431f1c7375ef53 (diff) | |
download | gcc-fcb13a10e4053a9d6426093b9c733634339a022f.zip gcc-fcb13a10e4053a9d6426093b9c733634339a022f.tar.gz gcc-fcb13a10e4053a9d6426093b9c733634339a022f.tar.bz2 |
re PR c++/51230 (Broken diagnostic: 'template_parm_index' not supported by dump_type)
/cp
2011-11-20 Paolo Carlini <paolo.carlini@oracle.com>
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 <paolo.carlini@oracle.com>
PR c++/51230
* g++.dg/template/error46.C: New.
From-SVN: r181538
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/error.c | 1 | ||||
-rw-r--r-- | gcc/cp/pt.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/error46.C | 11 |
5 files changed, 24 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 96e4d20..1bc0e5a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2011-11-20 Paolo Carlini <paolo.carlini@oracle.com> + + 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 <dodji@redhat.com> PR c++/51194 diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 602cb75..4940a78 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 2b02fa4..f4eb1d4 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 2a9c6d1..8b2f661 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-11-20 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/51230 + * g++.dg/template/error46.C: New. + 2011-11-20 Uros Bizjak <ubizjak@gmail.com> 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 0000000..0f4bdaf --- /dev/null +++ b/gcc/testsuite/g++.dg/template/error46.C @@ -0,0 +1,11 @@ +// PR c++/51230 + +template<int> struct A {}; + +template<int N> void foo(A<N>, A<N>); // { dg-message "template" } + +void bar() +{ + foo(A<0>(), A<1>()); // { dg-error "no matching" } +} +// { dg-message "candidate|parameter 'N' ('0' and '1')" { target *-*-* } 9 } |