https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97374
Bug ID: 97374 Summary: missing essential detail in array parameter overflow warning Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- The warning below doesn't provide enough information to understand what the problem is. The first note should say something like note: referencing argument 1 of type ‘int[4]’ $ cat q.c && gcc -O2 -S -Wall q.c typedef int A[3]; typedef int B[4]; void f (B); struct S { A x; B y; }; void g (struct S *p) { f (p->x); } q.c: In function ‘g’: q.c:10:3: warning: ‘f’ accessing 16 bytes in a region of size 12 [-Wstringop-overflow=] 10 | f (p->x); | ^~~~~~~~ q.c:10:3: note: referencing argument 1 of type ‘int *’ q.c:4:6: note: in a call to function ‘f’ 4 | void f (B); | ^