https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101832
--- Comment #10 from qinzhao at gcc dot gnu.org --- shall we support the following multi-level nesting? struct A { int len; char data[]; }; struct B { int n; struct A a; }; struct C { int m, struct B b; }; struct C *outer; __builtin_object_size (&outer->b, 1); __builtin_object_size (&outer->b.a, 1); with the current GCC: __builtin_object_size(&wrap->b, 1) == 8 __builtin_object_size(&wrap->b.a, 1) == 4 We expect both are -1 since the innermost structure A has a trailing flexible array member.