https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120354
Bug ID: 120354 Summary: Flexible array union in the middle is not reported by -Wflex-array-member-not-at-end option when flexible array member is not the last one Product: gcc Version: 16.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: alansnape3058 at gmail dot com Target Milestone: --- Details and comparison with Clang in The unions containing a flexible array member that is not the last one are not considered flexible array unions. ``` union X { int x[]; int y; }; struct T { union X x; int plug; }; ``` In this example, the flexible array member in `union X` is not the last element. However, it is still a flexible array union. When using this union to define a member in the middle of another struct, the usage is not reported. This is also true when referencing a flexible array struct in the union. ``` struct Q { int len; int data[]; }; union Y { struct Q q; int y; }; struct S { union Y y; int plug; }; ```