https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82501
--- Comment #13 from Martin Liška <marxin at gcc dot gnu.org> --- Not true for: $ cat global5.c const char c1[] = "a"; int main() { return *(&c1[0]+3); } $ gcc-8 -fsanitize=address global5.c -fno-common && ./a.out ================================================================= ==13012==ERROR: AddressSanitizer: global-buffer-overflow on address 0x000000402023 at pc 0x00000040118f bp 0x7fffffffdc00 sp 0x7fffffffdbf8 READ of size 1 at 0x000000402023 thread T0 #0 0x40118e in main (/home/marxin/Programming/testcases/a.out+0x40118e) #1 0x7ffff73b4b7a in __libc_start_main ../csu/libc-start.c:308 #2 0x4010a9 in _start (/home/marxin/Programming/testcases/a.out+0x4010a9) 0x000000402023 is located 1 bytes to the right of global variable 'c1' defined in 'global5.c:1:12' (0x402020) of size 2 'c1' is ascii string 'a' SUMMARY: AddressSanitizer: global-buffer-overflow (/home/marxin/Programming/testcases/a.out+0x40118e) in main Shadow bytes around the buggy address: 0x0000800783b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0000800783c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0000800783d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0000800783e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0000800783f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =>0x000080078400: 00 00 00 00[02]f9 f9 f9 f9 f9 f9 f9 00 00 00 00 0x000080078410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x000080078420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x000080078430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x000080078440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x000080078450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Thus the dummies will be really needed.