aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>2005-03-22 14:44:10 +0000
committerVolker Reichelt <reichelt@gcc.gnu.org>2005-03-22 14:44:10 +0000
commit0f3744f8c2816d6f681b7b93784c634e1f8f34c2 (patch)
treea50341df48b44bde39d1b745df0eecf43c77b358 /gcc
parentb2a6a2fb642ff3deaf4ac102ebca75e96ed9d1e9 (diff)
downloadgcc-0f3744f8c2816d6f681b7b93784c634e1f8f34c2.zip
gcc-0f3744f8c2816d6f681b7b93784c634e1f8f34c2.tar.gz
gcc-0f3744f8c2816d6f681b7b93784c634e1f8f34c2.tar.bz2
re PR c++/20499 (ICE on duplicate class definition)
PR c++/20499 * parser.c (cp_parser_class_head): Return NULL_TREE when encountering a redefinition. * g++.dg/parse/error16.C: Tweak error markers. From-SVN: r96870
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/parser.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/parse/error16.C4
4 files changed, 15 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ddac9f8..bb0c547 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/20499
+ * parser.c (cp_parser_class_head): Return NULL_TREE when
+ encountering a redefinition.
+
2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
PR c++/20465
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 6df7bad..a614540 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -12858,7 +12858,8 @@ cp_parser_class_head (cp_parser* parser,
{
error ("redefinition of %q#T", type);
cp_error_at ("previous definition of %q#T", type);
- type = error_mark_node;
+ type = NULL_TREE;
+ goto done;
}
/* We will have entered the scope containing the class; the names of
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8960528..3909d56 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/20499
+ * g++.dg/parse/error16.C: Tweak error markers.
+
2005-03-22 Jakub Jelinek <jakub@redhat.com>
PR target/20561
diff --git a/gcc/testsuite/g++.dg/parse/error16.C b/gcc/testsuite/g++.dg/parse/error16.C
index afc790e..3dc58ad 100644
--- a/gcc/testsuite/g++.dg/parse/error16.C
+++ b/gcc/testsuite/g++.dg/parse/error16.C
@@ -2,7 +2,7 @@
struct A
{
- struct B {}; // { dg-error "" }
+ struct B {}; // { dg-error "previous" }
};
-struct A::B{}; // { dg-error "" }
+struct A::B{}; // { dg-error "redefinition" }