[Bug c++/98401] coroutines: Temporaries passed to co_await sometimes cause an extraneous call to destructor at incorrect address

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jul 15 14:21:37 GMT 2024


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98401

--- Comment #12 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Arsen Arsenović from comment #10)
> possibly fixed in 13.1 by r13-4479-g58a7b1e354530d ?
>
> I cannot reproduce with https://gcc.gnu.org/bugzilla/attachment.cgi?id=49811

Indeed. I modified that to add a global int count and then in the
lifetime_tester destructor did `if (count++) abort();` to make it easier to
test automatically. The double destruction was fixed by the commit suggested by
Arsen.


More information about the Gcc-bugs mailing list