I don't see why we just reject the following code: extern short int aa[][];
In Comeau's compiler, in both C89 and C99 mode, they reject it. Though we have to be care full not to reject: union incomplete (*foo)[4]; which is only undefined in C89 but it is invalid in C99 -- Summary: Accepts invalid code (well I don't know if it is invalid or not but I think it should be) Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: accepts-invalid Severity: minor Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19390