https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113026
Bug ID: 113026 Summary: Bogus -Wstringop-overflow warning on simple memcpy type loop Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: bergner at gcc dot gnu.org Target Milestone: --- The following testcase has a bogus warning on trunk back to at least gcc 11. bergner@ltcden2-lp1:LTC193379$ cat bug.c char dst[16]; long n = 16; void foo (char *src) { for (long i = 0; i < n; i++) dst[i] = src[i]; } bergner@ltcden2-lp1:LTC193379$ /opt/gcc-nightly/trunk/bin/gcc -S -O3 -mcpu=power8 bug.c bug.c: In function ‘foo’: bug.c:8:12: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 8 | dst[i] = src[i]; | ~~~~~~~^~~~~~~~ bug.c:1:6: note: at offset 16 into destination object ‘dst’ of size 16 1 | char dst[16]; | ^~~ bug.c:8:12: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 8 | dst[i] = src[i]; | ~~~~~~~^~~~~~~~ bug.c:1:6: note: at offset 17 into destination object ‘dst’ of size 16 1 | char dst[16]; | ^~~