https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92939
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |10.1.0 Status|UNCONFIRMED |RESOLVED Target Milestone|--- |11.0 Known to work| |11.0 Resolution|--- |FIXED Assignee|unassigned at gcc dot gnu.org |msebor at gcc dot gnu.org --- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> --- After r11-1183 GCC detects the overflow as expected: $ gcc -O2 -S -Wall -Wextra -Wno-array-bounds pr92939.c pr92939.c: In function ‘f’: pr92939.c:12:8: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 12 | p[1] = 0; // a[3] a[3] a[4] a[4] << warns | ~~~~~^~~ pr92939.c:8:8: note: at offset 3 to object ‘a’ with size 3 declared here 8 | char a[3], *p = a + n; | ^ pr92939.c:22:9: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 22 | p[-2] = 0; // a[-2] a[-3] a[-1] a[-2] << should warn | ~~~~~~^~~ pr92939.c:8:8: note: at offset -1 to object ‘a’ with size 3 declared here 8 | char a[3], *p = a + n; | ^