struct s { int i; long f[]; int j; }; union u { int i; long f[]; }; // trigger the examination of the offending types static int foo(struct s *s, union u *u) { return __builtin_offsetof(typeof(*s), i) + __builtin_offsetof(typeof(*u), i); } /* * check-name: flex-array-error * * check-error-start flex-array-error.c:3:14: error: flexible array member 'f' is not last flex-array-error.c:9:14: error: flexible array member 'f' in a union * check-error-end */