https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96487
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=45178, | |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=102893 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Biener from comment #1) > diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c > index fae5ae72340..a66fc34c9e5 100644 > --- a/gcc/tree-ssa-dce.c > +++ b/gcc/tree-ssa-dce.c > @@ -450,7 +450,10 @@ find_obviously_necessary_stmts (bool aggressive) > { > if (dump_file) > fprintf (dump_file, "cannot prove finiteness of loop %i\n", > loop->num); > - mark_control_dependent_edges_necessary (loop->latch, false); > + if (loop->exits->next->e) > + mark_control_dependent_edges_necessary (loop->latch, false); > + else > + bitmap_set_bit (bb_contains_live_stmts, loop->latch->index); > } > } > } A similar patch to the above was applied for PR 45178 (and then fixed such that it is does the ->e part for PR 102893) ... So is this fixed now?