* c-parser.c (c_parser_parms_list_declarator): Discard pending
sizes on syntax error after some arguments have been parsed.
testsuite:
* gcc.dg/noncompile/pr35444-1.c, gcc.dg/noncompile/pr35444-2.c:
New tests.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144149
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-02-13 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/35444
+ * c-parser.c (c_parser_parms_list_declarator): Discard pending
+ sizes on syntax error after some arguments have been parsed.
+
2009-02-12 Jakub Jelinek <jakub@redhat.com>
* doc/invoke.texi (-fira): Remove.
"expected %<;%>, %<,%> or %<)%>"))
{
c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
+ get_pending_sizes ();
return NULL;
}
if (c_parser_next_token_is (parser, CPP_ELLIPSIS))
{
c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
"expected %<)%>");
+ get_pending_sizes ();
return NULL;
}
}
+2009-02-13 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/35444
+ * gcc.dg/noncompile/pr35444-1.c, gcc.dg/noncompile/pr35444-2.c:
+ New tests.
+
2009-02-12 Jason Merrill <jason@redhat.com>
PR c++/38950
--- /dev/null
+/* PR 35444: ICE from pending VLA sizes in invalid parameter list. */
+void foo(int n, int a[n], int 0); /* { dg-error "expected" } */
+void bar() {}
--- /dev/null
+/* PR 35444: ICE from pending VLA sizes in invalid parameter list.
+ Similar case to the PR, but with "..." before the syntax error. */
+void foo(int n, int a[n], ... 0); /* { dg-error "expected" } */
+void bar() {}