[Bug c++/102051] [coroutines] ICE in gimplify_var_or_parm_decl, at gimplify.c:2848
harris.hancock at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Jul 21 21:04:26 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102051
Harris Hancock <harris.hancock at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |harris.hancock at gmail dot com
--- Comment #3 from Harris Hancock <harris.hancock at gmail dot com> ---
I have observed this bug, too, while trying to compile Cap'n Proto with
coroutine support using GCC 10, 11, and 12.
Like Iain, the preprocessed file which Vitali uploaded compiles for me, at
least on various versions of x86-64 gcc available in Compiler Explorer.
However, Vitali's reduced example, available in the first Compiler Explorer
link he posted (https://godbolt.org/z/M5nfEPMKj) readily reproduces the ICE,
both in Compiler Explorer on gcc trunk and also locally for me using GCC 12
distributed by Ubuntu Jammy (g++-12 (Ubuntu 12.1.0-2ubuntu1~22.04) 12.1.0),
using `g++-12 -o the-file.o -c the-file.i -std=c++20`.
The ICE disappears if we modify the following line
~Own() noexcept(false);
to
~Own() noexcept(true);
So, this appears to be a coroutine bug related to noexcept(false) destructors,
similar to Bug 95822.
More information about the Gcc-bugs
mailing list