------- Additional Comments From pinskia at gcc dot gnu dot org 2004-10-21 02:44
-------
Here is the patch if you need it sooner:
Index: c-decl.c
===============================================================
====
RCS file: /cvs/gcc/gcc/gcc/c-decl.c,v
retrieving revision 1.602
diff -u -p -r1.602 c-decl.c
--- c-decl.c 14 Oct 2004 23:20:57 -0000 1.602
+++ c-decl.c 21 Oct 2004 02:10:02 -0000
@@ -4129,19 +4128,17 @@ grokdeclarator (const struct c_declarato
if (size_varies)
C_TYPE_VARIABLE_SIZE (type) = 1;
+ /* We can never complete an array type which is the
+ target of a pointer, so go ahead and lay it out. */
+ layout_type (type);
/* The GCC extension for zero-length arrays differs from
ISO flexible array members in that sizeof yields
zero. */
if (size && integer_zerop (size))
{
- layout_type (type);
TYPE_SIZE (type) = bitsize_zero_node;
TYPE_SIZE_UNIT (type) = size_zero_node;
}
- else if (declarator->kind == cdk_pointer)
- /* We can never complete an array type which is the
- target of a pointer, so go ahead and lay it out. */
- layout_type (type);
if (decl_context != PARM
&& (array_ptr_quals != TYPE_UNQUALIFIED
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17407