https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88470
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I've changed that to + && (!JUMP_P (BB_END (bb1)) + /* Punt if the only successor is a fake edge to exit, the jump + must be some weird one. */ + || (single_succ_edge (bb1)->flags & EDGE_FAKE) != 0) shortly after attaching the patch.