]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/28853 (ICE on invalid declaration with template template parameter)
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>
Sat, 26 Aug 2006 00:59:09 +0000 (00:59 +0000)
committerVolker Reichelt <reichelt@gcc.gnu.org>
Sat, 26 Aug 2006 00:59:09 +0000 (00:59 +0000)
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

gcc/cp/ChangeLog
gcc/cp/typeck2.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/ttp21.C [new file with mode: 0644]

index ddaaa05669b7aad01c4c23981817cb0667c86d94..2079a2856886847361ad9a2675b04f2e22d47e0c 100644 (file)
@@ -1,3 +1,10 @@
+2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       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  <jason@redhat.com>
 
        PR c++/27714
index c0610171a8e24b967dd346fb1dc874dffc41a4a5..b78c6f2333cdf2557fedd9fdd4fb9640c71896b8 100644 (file)
@@ -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:
index 10eff6cbe7a995168c1c7ff82b1c6344e96f1264..59b575f42789769785b93a5395d3ae3464282dde 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/28853
+       * g++.dg/template/ttp21.C: New test.
+
 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
 
        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 (file)
index 0000000..f0bda99
--- /dev/null
@@ -0,0 +1,5 @@
+// PR c++/28853
+// { dg-do compile }
+
+template<template<int> class A>
+int A<0>::i;  // { dg-error "template template parameter" }