aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2007-12-02 19:47:18 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2007-12-02 19:47:18 +0000
commit0b93f014a71e3f5e3aa3b46822ae9f74875b2ce7 (patch)
tree7889ed15863aa7dc5fc38ee066f0a0bfccff2078
parentdd9c642a8bbbc0b75be122f98a08ab992755dedd (diff)
downloadgcc-0b93f014a71e3f5e3aa3b46822ae9f74875b2ce7.zip
gcc-0b93f014a71e3f5e3aa3b46822ae9f74875b2ce7.tar.gz
gcc-0b93f014a71e3f5e3aa3b46822ae9f74875b2ce7.tar.bz2
re PR c++/34061 (ICE with template-template parameters and inheritance)
/cp 2007-12-02 Paolo Carlini <pcarlini@suse.de> PR c++/34061 * pt.c (current_template_args): Use error_operand_p. /testsuite 2007-12-02 Paolo Carlini <pcarlini@suse.de> PR c++/34061 * g++.dg/cpp0x/pr34061.C: New. From-SVN: r130573
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/pt.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr34061.C5
4 files changed, 16 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 4a8b907..097f8fa 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,10 @@
2007-12-02 Paolo Carlini <pcarlini@suse.de>
+ PR c++/34061
+ * pt.c (current_template_args): Use error_operand_p.
+
+2007-12-02 Paolo Carlini <pcarlini@suse.de>
+
PR c++/34273
* error.c (dump_decl): Handle TREE_BINFO.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 4b09e85..f70147d 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -3186,7 +3186,7 @@ current_template_args (void)
{
t = TREE_VALUE (t);
- if (t != error_mark_node)
+ if (!error_operand_p (t))
{
if (TREE_CODE (t) == TYPE_DECL
|| TREE_CODE (t) == TEMPLATE_DECL)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 00ca049..99fea62 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2007-12-02 Paolo Carlini <pcarlini@suse.de>
+ PR c++/34061
+ * g++.dg/cpp0x/pr34061.C: New.
+
+2007-12-02 Paolo Carlini <pcarlini@suse.de>
+
PR c++/34273
* g++.dg/other/error21.C: New.
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr34061.C b/gcc/testsuite/g++.dg/cpp0x/pr34061.C
new file mode 100644
index 0000000..7d6e71d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/pr34061.C
@@ -0,0 +1,5 @@
+// PR c++/34061
+// { dg-do compile }
+// { dg-options "-std=c++0x" }
+
+template<template<int> class ...T> struct A : T<0> {}; // { dg-error "not expanded|T" }