https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112510
--- Comment #17 from Vladimir Sadovnikov <sadko4u at gmail dot com> --- Reproducible with 11.4.0 ~$ export ASAN_OPTIONS=detect_stack_use_after_return=1 ~$ g++ -fsanitize=address -Og test-case.cpp ~$ ./a.out Aborted (core dumped) ~$ gcc --version gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Not reproducible with 7.5.0: sadko@tuf-gaming:~/tmp> export ASAN_OPTIONS=detect_stack_use_after_return=1 sadko@tuf-gaming:~/tmp> g++ -fsanitize=address -Og test-case.cpp sadko@tuf-gaming:~/tmp> ./a.out sadko@tuf-gaming:~/tmp> gcc --version gcc (SUSE Linux) 7.5.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Generated code for 11.4.0: 00000000000011e9 <_Z3barP1SPc>: 11e9: f3 0f 1e fa endbr64 11ed: 40 f6 c7 3f test $0x3f,%dil 11f1: 75 01 jne 11f4 <_Z3barP1SPc+0xb> 11f3: c3 ret 11f4: 48 83 ec 08 sub $0x8,%rsp 11f8: e8 c3 fe ff ff call 10c0 <__asan_handle_no_return@plt> 11fd: e8 9e fe ff ff call 10a0 <abort@plt> 0000000000001202 <_Z3foov>: 1202: f3 0f 1e fa endbr64 1206: 55 push %rbp 1207: 48 89 e5 mov %rsp,%rbp 120a: 41 55 push %r13 120c: 41 54 push %r12 120e: 53 push %rbx 120f: 48 83 e4 c0 and $0xffffffffffffffc0,%rsp 1213: 48 81 ec 00 01 00 00 sub $0x100,%rsp 121a: 48 8d 5c 24 20 lea 0x20(%rsp),%rbx 121f: 49 89 dd mov %rbx,%r13 1222: 83 3d e7 2d 00 00 00 cmpl $0x0,0x2de7(%rip) # 4010 <__asan_option_detect_stack_use_after_return@@Base> 1229: 0f 85 bb 00 00 00 jne 12ea <_Z3foov+0xe8> 122f: 48 c7 03 b3 8a b5 41 movq $0x41b58ab3,(%rbx) 1236: 48 8d 05 c7 0d 00 00 lea 0xdc7(%rip),%rax # 2004 <_IO_stdin_used+0x4> 123d: 48 89 43 08 mov %rax,0x8(%rbx) 1241: 48 8d 05 ba ff ff ff lea -0x46(%rip),%rax # 1202 <_Z3foov> 1248: 48 89 43 10 mov %rax,0x10(%rbx) 124c: 49 89 dc mov %rbx,%r12 124f: 49 c1 ec 03 shr $0x3,%r12 1253: 41 c7 84 24 00 80 ff movl $0xf1f1f1f1,0x7fff8000(%r12) 125a: 7f f1 f1 f1 f1 125f: 41 c7 84 24 04 80 ff movl $0xf1f1f1f1,0x7fff8004(%r12) 1266: 7f f1 f1 f1 f1 126b: 41 c7 84 24 08 80 ff movl $0xf201f1f1,0x7fff8008(%r12) 1272: 7f f1 f1 01 f2 1277: 41 c7 84 24 14 80 ff movl $0xf3f3f3f3,0x7fff8014(%r12) 127e: 7f f3 f3 f3 f3 1283: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax 128a: 00 00 128c: 48 89 84 24 f8 00 00 mov %rax,0xf8(%rsp) 1293: 00 1294: 31 c0 xor %eax,%eax 1296: 48 8d 73 50 lea 0x50(%rbx),%rsi 129a: 48 8d 7b 60 lea 0x60(%rbx),%rdi 129e: e8 46 ff ff ff call 11e9 <_Z3barP1SPc> 12a3: 49 39 dd cmp %rbx,%r13 12a6: 75 5d jne 1305 <_Z3foov+0x103> 12a8: 49 c7 84 24 00 80 ff movq $0x0,0x7fff8000(%r12) 12af: 7f 00 00 00 00 12b4: 41 c7 84 24 08 80 ff movl $0x0,0x7fff8008(%r12) 12bb: 7f 00 00 00 00 12c0: 41 c7 84 24 14 80 ff movl $0x0,0x7fff8014(%r12) 12c7: 7f 00 00 00 00 12cc: 48 8b 84 24 f8 00 00 mov 0xf8(%rsp),%rax 12d3: 00 12d4: 64 48 2b 04 25 28 00 sub %fs:0x28,%rax 12db: 00 00 12dd: 75 65 jne 1344 <_Z3foov+0x142> 12df: 48 8d 65 e8 lea -0x18(%rbp),%rsp 12e3: 5b pop %rbx 12e4: 41 5c pop %r12 12e6: 41 5d pop %r13 12e8: 5d pop %rbp 12e9: c3 ret 12ea: bf c0 00 00 00 mov $0xc0,%edi 12ef: e8 ec fd ff ff call 10e0 <__asan_stack_malloc_2@plt> 12f4: 48 85 c0 test %rax,%rax 12f7: 0f 84 32 ff ff ff je 122f <_Z3foov+0x2d> 12fd: 48 89 c3 mov %rax,%rbx 1300: e9 2a ff ff ff jmp 122f <_Z3foov+0x2d> 1305: 48 c7 03 0e 36 e0 45 movq $0x45e0360e,(%rbx) 130c: 48 b8 f5 f5 f5 f5 f5 movabs $0xf5f5f5f5f5f5f5f5,%rax 1313: f5 f5 f5 1316: 49 89 84 24 00 80 ff mov %rax,0x7fff8000(%r12) 131d: 7f 131e: 49 89 84 24 08 80 ff mov %rax,0x7fff8008(%r12) 1325: 7f 1326: 48 b8 f5 f5 f5 f5 f5 movabs $0xf5f5f5f5f5f5f5f5,%rax 132d: f5 f5 f5 1330: 49 89 84 24 10 80 ff mov %rax,0x7fff8010(%r12) 1337: 7f 1338: 48 8b 83 f8 00 00 00 mov 0xf8(%rbx),%rax 133f: c6 00 00 movb $0x0,(%rax) 1342: eb 88 jmp 12cc <_Z3foov+0xca> 1344: e8 67 fd ff ff call 10b0 <__stack_chk_fail@plt> Generated code for 7.5.0: 0000000000400727 <_Z3barP1SPc>: 400727: 40 f6 c7 3f test $0x3f,%dil 40072b: 75 02 jne 40072f <_Z3barP1SPc+0x8> 40072d: f3 c3 repz ret 40072f: 48 83 ec 08 sub $0x8,%rsp 400733: e8 c8 fe ff ff call 400600 <__asan_handle_no_return@plt> 400738: e8 b3 fe ff ff call 4005f0 <abort@plt> 000000000040073d <_Z3foov>: 40073d: 4c 8d 54 24 08 lea 0x8(%rsp),%r10 400742: 48 83 e4 c0 and $0xffffffffffffffc0,%rsp 400746: 41 ff 72 f8 push -0x8(%r10) 40074a: 55 push %rbp 40074b: 48 89 e5 mov %rsp,%rbp 40074e: 41 55 push %r13 400750: 41 54 push %r12 400752: 41 52 push %r10 400754: 53 push %rbx 400755: 48 81 ec 10 01 00 00 sub $0x110,%rsp 40075c: 48 8d 9d d0 fe ff ff lea -0x130(%rbp),%rbx 400763: 49 89 dd mov %rbx,%r13 400766: 83 3d 13 19 00 00 00 cmpl $0x0,0x1913(%rip) # 402080 <__asan_option_detect_stack_use_after_return@@Base> 40076d: 0f 85 bf 00 00 00 jne 400832 <_Z3foov+0xf5> 400773: 48 c7 03 b3 8a b5 41 movq $0x41b58ab3,(%rbx) 40077a: 48 c7 43 08 54 09 40 movq $0x400954,0x8(%rbx) 400781: 00 400782: 48 c7 43 10 3d 07 40 movq $0x40073d,0x10(%rbx) 400789: 00 40078a: 49 89 dc mov %rbx,%r12 40078d: 49 c1 ec 03 shr $0x3,%r12 400791: 41 c7 84 24 00 80 ff movl $0xf1f1f1f1,0x7fff8000(%r12) 400798: 7f f1 f1 f1 f1 40079d: 41 c7 84 24 04 80 ff movl $0xf1f1f1f1,0x7fff8004(%r12) 4007a4: 7f f1 f1 f1 f1 4007a9: 41 c7 84 24 08 80 ff movl $0xf2f2f201,0x7fff8008(%r12) 4007b0: 7f 01 f2 f2 f2 4007b5: 41 c7 84 24 0c 80 ff movl $0xf2f2f2f2,0x7fff800c(%r12) 4007bc: 7f f2 f2 f2 f2 4007c1: 41 c7 84 24 18 80 ff movl $0xf3f3f3f3,0x7fff8018(%r12) 4007c8: 7f f3 f3 f3 f3 4007cd: 41 c7 84 24 1c 80 ff movl $0xf3f3f3f3,0x7fff801c(%r12) 4007d4: 7f f3 f3 f3 f3 4007d9: 48 8d 73 40 lea 0x40(%rbx),%rsi 4007dd: 48 8d bb 80 00 00 00 lea 0x80(%rbx),%rdi 4007e4: e8 3e ff ff ff call 400727 <_Z3barP1SPc> 4007e9: 49 39 dd cmp %rbx,%r13 4007ec: 75 5f jne 40084d <_Z3foov+0x110> 4007ee: 49 c7 84 24 00 80 ff movq $0x0,0x7fff8000(%r12) 4007f5: 7f 00 00 00 00 4007fa: 49 c7 84 24 08 80 ff movq $0x0,0x7fff8008(%r12) 400801: 7f 00 00 00 00 400806: 49 c7 84 24 10 80 ff movq $0x0,0x7fff8010(%r12) 40080d: 7f 00 00 00 00 400812: 49 c7 84 24 18 80 ff movq $0x0,0x7fff8018(%r12) 400819: 7f 00 00 00 00 40081e: 48 81 c4 10 01 00 00 add $0x110,%rsp 400825: 5b pop %rbx 400826: 41 5a pop %r10 400828: 41 5c pop %r12 40082a: 41 5d pop %r13 40082c: 5d pop %rbp 40082d: 49 8d 62 f8 lea -0x8(%r10),%rsp 400831: c3 ret 400832: bf 00 01 00 00 mov $0x100,%edi 400837: e8 e4 fd ff ff call 400620 <__asan_stack_malloc_2@plt> 40083c: 48 85 c0 test %rax,%rax 40083f: 0f 84 2e ff ff ff je 400773 <_Z3foov+0x36> 400845: 48 89 c3 mov %rax,%rbx 400848: e9 26 ff ff ff jmp 400773 <_Z3foov+0x36> 40084d: 48 c7 03 0e 36 e0 45 movq $0x45e0360e,(%rbx) 400854: 48 b8 f5 f5 f5 f5 f5 movabs $0xf5f5f5f5f5f5f5f5,%rax 40085b: f5 f5 f5 40085e: 49 89 84 24 00 80 ff mov %rax,0x7fff8000(%r12) 400865: 7f 400866: 49 89 84 24 08 80 ff mov %rax,0x7fff8008(%r12) 40086d: 7f 40086e: 49 89 84 24 10 80 ff mov %rax,0x7fff8010(%r12) 400875: 7f 400876: 49 89 84 24 18 80 ff mov %rax,0x7fff8018(%r12) 40087d: 7f 40087e: eb 9e jmp 40081e <_Z3foov+0xe1>