diff options
| -rw-r--r-- | gcc/cp/ChangeLog | 8 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/template/crash52.C | 19 |
3 files changed, 30 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7bdd699..78e4ed8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,13 @@ 2006-06-14 Mark Mitchell <mark@codesourcery.com> + PR c++/27665 + * parser.c (cp_parser_unqualified_id): Use constructor_name_p to + identify destructors. + (cp_parser_nested_name_specifier_opt): Remove invalid + optimization. + (cp_parser_template_id): Refine heuristic for determining whether + we are entering a scope. + PR c++/27648 * parser.c (cp_parser_declarator): Robustify. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6dc94a4..0a934c9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2006-06-14 Mark Mitchell <mark@codesourcery.com> + PR c++/27665 + * g++.dg/template/crash52.C: New test. + PR c++/27648 * g++.dg/ext/attrib22.C: New test. diff --git a/gcc/testsuite/g++.dg/template/crash52.C b/gcc/testsuite/g++.dg/template/crash52.C new file mode 100644 index 0000000..9fc3f68 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash52.C @@ -0,0 +1,19 @@ +// PR c++/27665 + +template<int> struct A +{ + struct B + { + struct C {}; + }; +}; + +template<int N> void foo() +{ + class A<N>::B::C X; +} + +void bar() +{ + foo<0>(); +} |
