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