With -std=c99 -pedantic-errors, the code void foo11d(int x[sizeof(int *[*])]);
receives the diagnostics: t.c:1: warning: '[*]' not in a declaration t.c:1: error: ISO C forbids zero-size array 'x' There certainly isn't a zero-size array (a GNU extension) here; there's a use of [*] arrays that ended up being valid with the final resolution of DR#341 (see <http://gcc.gnu.org/ml/gcc-patches/2009-02/msg00133.html>) and the result of sizeof should be variable, not a constant 0, in this case. -- Summary: bad errors for some uses of [*] arrays Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jsm28 at gcc dot gnu dot org OtherBugsDependingO 16989 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39582