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.