https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81437
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |8.2.0, 9.0 --- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> --- GCC 9 prints the two warnings below with -m64 as well as -m32. GCC 8.2.0 prints them too but only in LP64 mode. With -m32, it only warns about g. $ gcc -O2 -S -Wall -m32 a.c a.c: In function ‘g’: a.c:12:3: warning: ‘__builtin_memcpy’ forming offset 5 is out of the bounds [0, 4] of object ‘a’ with type ‘const char[4]’ [-Warray-bounds] 12 | __builtin_memcpy (d, a + 4, n); // missing warning | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ a.c:10:14: note: ‘a’ declared here 10 | const char a[] = "123"; | ^ a.c: In function ‘f’: a.c:5:3: warning: ‘__builtin_memcpy’ forming offset [5, 2147483651] is out of the bounds [0, 4] of object ‘a’ with type ‘const char[4]’ [-Warray-bounds] 5 | __builtin_memcpy (d, a + 4, n); // warning (ok) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ a.c:3:14: note: ‘a’ declared here 3 | const char a[] = "123"; | ^