aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>2006-08-26 00:37:48 +0000
committerVolker Reichelt <reichelt@igpm.rwth-aachen.de>2006-08-26 00:37:48 +0000
commitd7ec5a8417e3ad3147ab86a86a90fa6ccb64c111 (patch)
treee5b2e12b5e3923b4163cd80361966ae239ba32ea
parent6041360a711617268f4b14b70e136bc074d0a357 (diff)
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@116464 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/typeck2.c7
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/g++.dg/template/ttp21.C5
4 files changed, 19 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c56f75675eb..171103beca5 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +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.
+
PR c++/28852
* cp-tree.h (grok_op_properties): Return bool instead of void.
* decl.c (grokfndecl): Discard invalid operator declarations.
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index bef448bbdf9..6d847cb1cf9 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -403,7 +403,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 TYPENAME_TYPE:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8fa3f7f7893..39d2fc86507 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+ PR c++/28853
+ * g++.dg/template/ttp21.C: New test.
+
PR c++/28852
* g++.dg/other/operator1.C: Add error-marker.
* g++.dg/other/operator2.C: New test.
diff --git a/gcc/testsuite/g++.dg/template/ttp21.C b/gcc/testsuite/g++.dg/template/ttp21.C
new file mode 100644
index 00000000000..f0bda99d157
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/ttp21.C
@@ -0,0 +1,5 @@
+// PR c++/28853
+// { dg-do compile }
+
+template<template<int> class A>
+int A<0>::i; // { dg-error "template template parameter" }