From 4dc955c887529ba76595516911a841033eef0c00 Mon Sep 17 00:00:00 2001 From: rguenth Date: Tue, 4 Oct 2005 13:58:42 +0000 Subject: [PATCH] 2005-10-04 Richard Guenther PR c/23576 * c-decl.c (grokdeclarator): Don't write to fields of error_mark_node. * gcc.dg/noncompile/pr23576.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104943 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/c-decl.c | 21 ++++++++++++--------- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/noncompile/pr23576.c | 1 + 4 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/noncompile/pr23576.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a0c8dcc8dfc..9c0067484fa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-10-04 Richard Guenther + + PR c/23576 + * c-decl.c (grokdeclarator): Don't write to fields + of error_mark_node. + 2005-10-04 Andrew Pinski PR middle-end/23125 diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 1caf0b901bc..c274df47ac4 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -4248,16 +4248,19 @@ grokdeclarator (const struct c_declarator *declarator, else type = build_array_type (type, itype); - if (size_varies) - C_TYPE_VARIABLE_SIZE (type) = 1; - - /* The GCC extension for zero-length arrays differs from - ISO flexible array members in that sizeof yields - zero. */ - if (size && integer_zerop (size)) + if (type != error_mark_node) { - TYPE_SIZE (type) = bitsize_zero_node; - TYPE_SIZE_UNIT (type) = size_zero_node; + if (size_varies) + C_TYPE_VARIABLE_SIZE (type) = 1; + + /* The GCC extension for zero-length arrays differs from + ISO flexible array members in that sizeof yields + zero. */ + if (size && integer_zerop (size)) + { + TYPE_SIZE (type) = bitsize_zero_node; + TYPE_SIZE_UNIT (type) = size_zero_node; + } } if (decl_context != PARM diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1eb0c21a442..8bc316d3766 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-10-04 Richard Guenther + + PR c/23576 + * gcc.dg/noncompile/pr23576.c: New testcase. + 2005-10-04 Andrew Pinski PR middle-end/23125 diff --git a/gcc/testsuite/gcc.dg/noncompile/pr23576.c b/gcc/testsuite/gcc.dg/noncompile/pr23576.c new file mode 100644 index 00000000000..384b0f68c33 --- /dev/null +++ b/gcc/testsuite/gcc.dg/noncompile/pr23576.c @@ -0,0 +1 @@ +struct ipr_path_entry path[0]; /* { dg-error "array type has incomplete element type" } */ -- 2.11.0