https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99475
Bug ID: 99475 Summary: [10/11 Regression] bogus -Warray-bounds accessing an array element of empty structs Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- An indirect access to an element of an array of empty structs through a pointer to such an element triggers a spurious -Warray-bounds warning: $ cat v.c && gcc -O2 -S -Wall v.c struct S { } a[5]; void f (void) { a[1] = (struct S) { }; // okay } void g (void) { struct S *p = &a[0]; p[1] = (struct S) { }; // bogus -Warray-bounds } v.c: In function ‘g’: v.c:11:4: warning: array subscript 0 is outside array bounds of ‘struct S[5]’ [-Warray-bounds] 11 | p[1] = (struct S) { }; | ~^~~ v.c:1:14: note: while referencing ‘a’ 1 | struct S { } a[5]; | ^