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

--- Comment #4 from Drea Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #3)
> noreturn fixup could defer removing the edge to CFG cleanup, just split the
> block (so the call is the last stmt).

That is exactly what it does. The problem is the code for unreachable records
the basic blocks (not the edge) before the splitting of the basic block.

So the unreachable code ends up looking for an edge that no longer exists. As
the the cond part becomes part of the new bb with the splitting of the basic
block.

Reply via email to