diff options
author | Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> | 2003-07-24 11:56:33 +0000 |
---|---|---|
committer | Kriang Lerdsuwanakij <lerdsuwa@gcc.gnu.org> | 2003-07-24 11:56:33 +0000 |
commit | f60a10e71defb7b9e57ec668dc3710424bffbdc6 (patch) | |
tree | ae35b50248530a64ddb4420071d2d78af585dfd2 | |
parent | 5aaaf0e82c664c022e8ffd2aaa34279978619f83 (diff) | |
download | gcc-f60a10e71defb7b9e57ec668dc3710424bffbdc6.zip gcc-f60a10e71defb7b9e57ec668dc3710424bffbdc6.tar.gz gcc-f60a10e71defb7b9e57ec668dc3710424bffbdc6.tar.bz2 |
re PR c++/11513 (ICE in push_template_decl_real cp/pt.c:2755, template member functions)
PR c++/11513
* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): Use current_scope.
* g++.dg/template/crash8.C: New test.
From-SVN: r69739
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/cp-tree.h | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/crash8.C | 20 |
4 files changed, 31 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3314b35..337b372 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2003-07-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> + + PR c++/11513 + * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): Use current_scope. + 2003-07-23 Mark Mitchell <mark@codesourcery.com> PR c++/11645 diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 15bcea0..8e3fcf7 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -2838,7 +2838,7 @@ struct lang_decl GTY(()) entity with its own template parameter list, and which is not a full specialization. */ #define PROCESSING_REAL_TEMPLATE_DECL_P() \ - (processing_template_decl > template_class_depth (current_class_type)) + (processing_template_decl > template_class_depth (current_scope ())) /* Nonzero if this VAR_DECL or FUNCTION_DECL has already been instantiated, i.e. its definition has been generated from the diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4881e5a..a362729 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-07-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> + + PR c++/11513 + * g++.dg/template/crash8.C: New test. + 2003-07-23 Steven Bosscher <steven@gcc.gnu.org> PR c/10602 diff --git a/gcc/testsuite/g++.dg/template/crash8.C b/gcc/testsuite/g++.dg/template/crash8.C new file mode 100644 index 0000000..a6f26b3 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash8.C @@ -0,0 +1,20 @@ +// { dg-do compile } + +// Origin: David Robinson <drtr@dial.pipex.com> + +// PR c++/11513: ICE due to incorrect decision whether the tag is template. + +template <typename T> +struct bar +{ + struct foo + { + int a; + }; + + template <typename U> + int wom(U c) + { + struct foo b; + } +}; |