From 85cad37c81a7c506c09cea90ff3cd4a15acacaaa Mon Sep 17 00:00:00 2001 From: Volker Reichelt Date: Sat, 5 Aug 2006 23:08:54 +0000 Subject: [PATCH] re PR c/28136 (ICE with incomplete array type) PR c/28136 * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify. * gcc.dg/init-bad-5.c: New test. From-SVN: r115952 --- gcc/ChangeLog | 8 +++++++- gcc/c-parser.c | 2 +- gcc/testsuite/ChangeLog | 14 +++++++++----- gcc/testsuite/gcc.dg/init-bad-5.c | 5 +++++ 4 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/init-bad-5.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eb198c84ace..72e1d462d56 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,8 +1,14 @@ +2006-08-05 Volker Reichelt + + PR c/28136 + * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify. + 2006-08-04 Jan Hubicka PR target/26655 PR target/28270 - * reload.c (push_reload): Patch out the mismathcing instruction; return early. + * reload.c (push_reload): Patch out the mismatching instruction; + return early. (find_reload): Bail out if the instruction was patched out. 2006-08-04 Jan Hubicka diff --git a/gcc/c-parser.c b/gcc/c-parser.c index 32d2c5108bf..f895d423b31 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -5432,7 +5432,7 @@ c_parser_postfix_expression_after_paren_type (c_parser *parser, struct c_expr expr; start_init (NULL_TREE, NULL, 0); type = groktypename (type_name); - if (C_TYPE_VARIABLE_SIZE (type)) + if (type != error_mark_node && C_TYPE_VARIABLE_SIZE (type)) { error ("compound literal has variable size"); type = error_mark_node; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9f0818209b0..99bbfc50309 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,10 +1,14 @@ +2006-08-05 Volker Reichelt + + PR c/28136 + * gcc.dg/init-bad-5.c: New test. + 2006-08-03 Lee Millward - PR c++/28347 - * g++.dg/ext/typedef-init.C: Add new test for typedef - initialization inside templates. Adjust existing - error markers. - + PR c++/28347 + * g++.dg/ext/typedef-init.C: Add new test for typedef + initialization inside templates. Adjust existing error markers. + 2006-08-03 Mark Mitchell PR c++/28148 diff --git a/gcc/testsuite/gcc.dg/init-bad-5.c b/gcc/testsuite/gcc.dg/init-bad-5.c new file mode 100644 index 00000000000..18cee43b537 --- /dev/null +++ b/gcc/testsuite/gcc.dg/init-bad-5.c @@ -0,0 +1,5 @@ +/* PR c/28136 */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +int i = (struct A[]) {}; /* { dg-error "incomplete|empty|initialization" } */ -- 2.30.2