The C++ compiler now accepts the following constructs (parse/array-size2.C):
struct S { char a[4]; int b; }; extern void bar (char *, char *); void foo (void) { char g[(char *) &((struct S *) 0)->b - (char *) 0]; char h[(__SIZE_TYPE__) &((struct S *) 8)->b]; bar (g, h); } like the C compiler. But it should warn on them in pedantic mode. -- Summary: missing diagnostic on questionable array sizes with - pedantic Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: diagnostic Severity: minor Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ebotcazou at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44263