https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69241
--- Comment #8 from Abe <abe_skolnik at yahoo dot com> --- Slightly more reduced [2 bytes less? ;-)]... __attribute__((noreturn))void V(int); struct R{R(const R&){}}; R f(){V(0);} R c(){V(0);} This might be the most-reduced-possible form of this test case. Experimentation shows that: * removing the second function definition removes the ICE * removing the user-defined copy ctor removes the ICE * removing the int param. from 'V' removes the ICE