diff options
author | Geoff Keating <geoffk@cygnus.com> | 2000-09-17 09:39:20 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2000-09-17 09:39:20 +0000 |
commit | fc928afe684e9e9575fe2ed482fa454db49cf81c (patch) | |
tree | bafb1d4d752bc8cd9d7107e10b013aa0a6bc1171 | |
parent | 859e203f3a8476ae430f100b3a877013a4cfd1b1 (diff) | |
download | gcc-fc928afe684e9e9575fe2ed482fa454db49cf81c.zip gcc-fc928afe684e9e9575fe2ed482fa454db49cf81c.tar.gz gcc-fc928afe684e9e9575fe2ed482fa454db49cf81c.tar.bz2 |
decl2.c (handle_class_head): Always push some scope even in the error case.
* decl2.c (handle_class_head): Always push some scope even
in the error case.
From-SVN: r36467
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 9 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 66e3975..b0781e2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2000-09-17 Geoffrey Keating <geoffk@cygnus.com> + + * decl2.c (handle_class_head): Always push some scope even + in the error case. + 2000-09-16 Mark Mitchell <mark@codesourcery.com> * cp-tree.h (struct cp_language_function): Remove diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index b579f59..a530c32 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -5461,9 +5461,10 @@ handle_class_head (aggr, scope, id) /* According to the suggested resolution of core issue 180, 'typename' is assumed after a class-key. */ decl = make_typename_type (scope, id, 1); - if (decl == error_mark_node) - return error_mark_node; - decl = TYPE_MAIN_DECL (decl); + if (decl != error_mark_node) + decl = TYPE_MAIN_DECL (decl); + else + decl = NULL_TREE; } else if (scope == current) { @@ -5479,7 +5480,7 @@ handle_class_head (aggr, scope, id) cp_error ("no file-scope type named `%D'", id); /* Inject it at the current scope. */ - if (!decl) + if (! decl) decl = TYPE_MAIN_DECL (xref_tag (aggr, id, 1)); } |