https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99101
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |matz at gcc dot gnu.org --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Oh, and that connect_infinite_loops_to_exit () chooses to connect the loop (fine) and not the noreturn exit block is pure luck. So the fix that works isn't really a fix. The bogus control dependence we end up is that we make BB5 dependent on the edge 5->7 since BB5 controls the exit and thus 5->7 is a backedge and 5 becomes controlled by itself [only]. I guess that's not even technically wrong as to the definition of control dependence with regard to paths to exit. Meh.