https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81861
--- Comment #3 from Maxim Ostapenko <m.ostapenko at samsung dot com> --- (In reply to Uroš Bizjak from comment #1) > You didn't specify compile flags, but using: > > -O2 -fstack-protector-strong -fsanitize=address, I get: Sorry, here they are: $ /home/max/build/master/gcc/xgcc -B/home/max/build/master/gcc/ /home/max/workspace/downloads/gcc/gcc/testsuite/c-c++-common/asan/pr64820.c -B/home/max/build/master/x86_64-unknown-linux-gnu/./libsanitizer/ -B/home/max/build/master/x86_64-unknown-linux-gnu/./libsanitizer/asan/ -L/home/max/build/master/x86_64-unknown-linux-gnu/./libsanitizer/asan/.libs -fsanitize=address -g -I/home/max/workspace/downloads/gcc/gcc/testsuite/../../libsanitizer/include -fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -fstack-protector-strong -lm -o ./pr64820.exe $ /home/max/build/master/gcc/xgcc -v Using built-in specs. COLLECT_GCC=/home/max/build/master/gcc/xgcc Target: x86_64-unknown-linux-gnu Configured with: /home/max/workspace/downloads/gcc/configure --enable-multilib --enable-checking --target=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/home/max/install/master --disable-bootstrap --enable-languages=c,c++ CFLAGS='-g -g3 -O0' CXXFLAGS='-g -g3 -O0' : (reconfigured) /home/max/workspace/downloads/gcc/configure --enable-multilib --enable-checking --target=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/home/max/install/master --disable-bootstrap CFLAGS='-g -g3 -O0' CXXFLAGS='-g -g3 -O0' build_alias=x86_64-unknown-linux-gnu host_alias=x86_64-unknown-linux-gnu target_alias=x86_64-unknown-linux-gnu --enable-languages=c,c++,lto --no-create --no-recursion : (reconfigured) /home/max/workspace/downloads/gcc/configure --enable-multilib --enable-checking --target=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/home/max/install/master --disable-bootstrap CFLAGS='-g -g3 -O0' CXXFLAGS='-g -g3 -O0' build_alias=x86_64-unknown-linux-gnu host_alias=x86_64-unknown-linux-gnu target_alias=x86_64-unknown-linux-gnu --enable-languages=c,c++,lto --no-create --no-recursion : (reconfigured) /home/max/workspace/downloads/gcc/configure --enable-multilib --enable-checking --target=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/home/max/install/master --disable-bootstrap CFLAGS='-g -g3 -O0' CXXFLAGS='-g -g3 -O0' build_alias=x86_64-unknown-linux-gnu host_alias=x86_64-unknown-linux-gnu target_alias=x86_64-unknown-linux-gnu --enable-languages=c,c++,lto --no-create --no-recursion : (reconfigured) /home/max/workspace/downloads/gcc/configure --enable-multilib --enable-checking --target=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/home/max/install/master --disable-bootstrap CFLAGS='-g -g3 -O0' CXXFLAGS='-g -g3 -O0' build_alias=x86_64-unknown-linux-gnu host_alias=x86_64-unknown-linux-gnu target_alias=x86_64-unknown-linux-gnu --enable-languages=c,c++,lto --no-create --no-recursion : (reconfigured) /home/max/workspace/downloads/gcc/configure --enable-multilib --enable-checking --target=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/home/max/install/master --disable-bootstrap CFLAGS='-g -g3 -O0' CXXFLAGS='-g -g3 -O0' build_alias=x86_64-unknown-linux-gnu host_alias=x86_64-unknown-linux-gnu target_alias=x86_64-unknown-linux-gnu --enable-languages=c,c++,lto --no-create --no-recursion : (reconfigured) /home/max/workspace/downloads/gcc/configure --enable-multilib --enable-checking --target=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/home/max/install/master --disable-bootstrap CFLAGS='-g -g3 -O0' CXXFLAGS='-g -g3 -O0' build_alias=x86_64-unknown-linux-gnu host_alias=x86_64-unknown-linux-gnu target_alias=x86_64-unknown-linux-gnu --enable-languages=c,c++,lto --no-create --no-recursion Thread model: posix gcc version 8.0.0 20170808 (experimental) (GCC) > > 51: c7 82 00 80 ff 7f f1 movl $0xf1f1f1f1,0x7fff8000(%rdx) > 58: f1 f1 f1 > 5b: c7 82 04 82 ff 7f f3 movl $0xf3f3f3f3,0x7fff8204(%rdx) > 62: f3 f3 f3 > 65: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax > 6c: 00 00 > 6e: 48 89 84 24 58 10 00 mov %rax,0x1058(%rsp) > 75: 00 > 76: 31 c0 xor %eax,%eax > > The insn in question is: > > #(insn:TI 35 19 40 3 (parallel [ > # (set (mem/v/f/c:DI (plus:DI (reg/f:DI 7 sp) > # (const_int 4184 [0x1058])) [2 D.2177+0 S8 A64]) > # (unspec:DI [ > # (mem/f:DI (const_int 40 [0x28]) [4 > MEM[(<address-space-1> long unsigned int *)40B]+0 S8 A64 AS1]) > # ] UNSPEC_SP_SET)) > # (set (reg:DI 0 ax [97]) > # (const_int 0 [0])) > # (clobber (reg:CC 17 flags)) > # ]) "pr64820.c":13 1002 {stack_protect_set_di} > # (expr_list:REG_UNUSED (reg:CC 17 flags) > # (expr_list:REG_UNUSED (reg:DI 0 ax [97]) > # (nil)))) > movq %fs:40, %rax # 35 stack_protect_set_di [length = 16] > movq %rax, 4184(%rsp) > xorl %eax, %eax > > Maybe LTO doesn't handle address spaces correctly?