From: Volker Reichelt Date: Sat, 26 Aug 2006 00:59:09 +0000 (+0000) Subject: re PR c++/28853 (ICE on invalid declaration with template template parameter) X-Git-Tag: releases/gcc-4.0.4~414 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b6f0bf1386ac18dafd88d2dccd123eab29e6efd;p=thirdparty%2Fgcc.git re PR c++/28853 (ICE on invalid declaration with template template parameter) PR c++/28853 * typeck2.c (cxx_incomplete_type_diagnostic): Handle template template parameters. Improve error message for template type parameters. * g++.dg/template/ttp21.C: New test. From-SVN: r116466 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ddaaa05669b7..2079a2856886 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2006-08-25 Volker Reichelt + + PR c++/28853 + * typeck2.c (cxx_incomplete_type_diagnostic): Handle template + template parameters. Improve error message for template type + parameters. + 2006-08-23 Jason Merrill PR c++/27714 diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index c0610171a8e2..b78c6f2333cd 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -412,7 +412,12 @@ cxx_incomplete_type_diagnostic (tree value, tree type, int diag_type) break; case TEMPLATE_TYPE_PARM: - (*p_msg) ("invalid use of template type parameter"); + (*p_msg) ("invalid use of template type parameter %qT", type); + break; + + case BOUND_TEMPLATE_TEMPLATE_PARM: + (*p_msg) ("invalid use of template template parameter %qT", + TYPE_NAME (type)); break; case UNKNOWN_TYPE: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 10eff6cbe7a9..59b575f42789 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-08-25 Volker Reichelt + + PR c++/28853 + * g++.dg/template/ttp21.C: New test. + 2006-08-25 Joseph S. Myers PR c/28418 diff --git a/gcc/testsuite/g++.dg/template/ttp21.C b/gcc/testsuite/g++.dg/template/ttp21.C new file mode 100644 index 000000000000..f0bda99d1575 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/ttp21.C @@ -0,0 +1,5 @@ +// PR c++/28853 +// { dg-do compile } + +template class A> +int A<0>::i; // { dg-error "template template parameter" }