https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112488
--- Comment #7 from uecker at gcc dot gnu.org --- And this example also fails with this fix: extern void abort(void); int test(int *n, struct T { char a[*n], b[*n]; }*) { return sizeof(struct T) - sizeof(struct T); } void f1(int *p) { if (test(p, 0)) abort(); }