aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-parser.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2005-03-13 01:09:47 +0000
committerJoseph Myers <jsm28@gcc.gnu.org>2005-03-13 01:09:47 +0000
commit67c2939d3e5c4e7835e3e58d3700cfa65a4e03ed (patch)
tree627cf4b5bf6a4b1aea79cf236c48e8ffb01f8e77 /gcc/c-parser.c
parentc75ab022811aa05c49657d6c48471962b48c9666 (diff)
downloadgcc-67c2939d3e5c4e7835e3e58d3700cfa65a4e03ed.zip
gcc-67c2939d3e5c4e7835e3e58d3700cfa65a4e03ed.tar.gz
gcc-67c2939d3e5c4e7835e3e58d3700cfa65a4e03ed.tar.bz2
re PR c/20402 (gcc.dg/noncompile/920923-1.c ICE)
PR c/20402 * c-parser.c (c_parser_struct_or_union_specifier): Don't fall through into call to parser_xref_tag after parse error. (c_parser_struct_declaration): Consistently return NULL_TREE on error. testsuite: * gcc.dg/noncompile/920923-1.c: Detail expected diagnostics for new parser. From-SVN: r96363
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r--gcc/c-parser.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index 6fd09b9..fa62475 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -1827,6 +1827,7 @@ c_parser_struct_or_union_specifier (c_parser *parser)
c_parser_error (parser, "expected %<{%>");
ret.spec = error_mark_node;
ret.kind = ctsk_tagref;
+ return ret;
}
ret = parser_xref_tag (code, ident);
return ret;
@@ -1883,7 +1884,7 @@ c_parser_struct_declaration (c_parser *parser)
specs = build_null_declspecs ();
c_parser_declspecs (parser, specs, false, true, true);
if (parser->error)
- return error_mark_node;
+ return NULL_TREE;
if (!specs->declspecs_seen_p)
{
c_parser_error (parser, "expected specifier-qualifier-list");