https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95137
--- Comment #7 from Martin Liška <marxin at gcc dot gnu.org> --- In the meantime, I run all tests in gcc/testsuite/g++.dg/coroutines/torture and I see: $ g++ co-ret-17-void-ret-coro.C -fsanitize=address -fcoroutines -O2 && ./a.out ================================================================= ==8226==ERROR: AddressSanitizer: heap-use-after-free on address 0x604000000010 at pc 0x000000401286 bp 0x7fffffffe130 sp 0x7fffffffe128 READ of size 8 at 0x604000000010 thread T0 #0 0x401285 in main (/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/coroutines/torture/a.out+0x401285) #1 0x7ffff70dfcea in __libc_start_main ../csu/libc-start.c:308 #2 0x401309 in _start (/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/coroutines/torture/a.out+0x401309) 0x604000000010 is located 0 bytes inside of 48-byte region [0x604000000010,0x604000000040) freed by thread T0 here: #0 0x7ffff76ae9f7 in operator delete(void*) /home/marxin/Programming/gcc/libsanitizer/asan/asan_new_delete.cpp:160 #1 0x4015b7 in _Z7my_coroRNSt7__n486116coroutine_handleIvEE.actor(my_coro(std::__n4861::coroutine_handle<void>&)::_Z7my_coroRNSt7__n486116coroutine_handleIvEE.frame*) (/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/coroutines/torture/a.out+0x4015b7) previously allocated by thread T0 here: #0 0x7ffff76adff7 in operator new(unsigned long) /home/marxin/Programming/gcc/libsanitizer/asan/asan_new_delete.cpp:99 #1 0x401902 in my_coro(std::__n4861::coroutine_handle<void>&) (/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/coroutines/torture/a.out+0x401902) #2 0x403d8f in __local_asan_preinit (/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/coroutines/torture/a.out+0x403d8f) SUMMARY: AddressSanitizer: heap-use-after-free (/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/coroutines/torture/a.out+0x401285) in main Shadow bytes around the buggy address: 0x0c087fff7fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c087fff7fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c087fff7fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c087fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c087fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =>0x0c087fff8000: fa fa[fd]fd fd fd fd fd fa fa fa fa fa fa fa fa 0x0c087fff8010: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c087fff8020: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c087fff8030: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c087fff8040: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c087fff8050: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Shadow gap: cc ==8226==ABORTING