https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106923
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- It's a latent bug in function splitting. When we outline a part of a returns-twice function the outlined part retains the 'returns-twice' attribute and thus now techincally the function calls setjmp. DCE now correctly asserts that a setjmp cannot appear out of nowhere and if it were there cfun->calls_setjmp should better indicate that. The easiest fix appears to be to disallow splitting returns-twice functions or amend check_forbidden_calls and forcefully clear the flag from the split part. Honza?