http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51106

--- Comment #18 from Andrey Belevantsev <abel at gcc dot gnu.org> 2012-03-27 
14:08:23 UTC ---
(In reply to comment #17)
> Looks reasonable.  Though I think that whoever removed the fallthru
> edge should have adjusted the flags on the others.
That's simply delete_basic_block at cfgcleanup.c:2612 -- we have block 2 with
two successors 4 and 5, and block 4 is trivially dead (empty, no succ, etc.),
so when removing block 4 we just remove the 2->4 edge which is the only
fallthru one.  Which seems fine as the asm in question is seen by the rest of
code as an unconditional jump then.  Only when we remove it, we get no jump and
still no fallthru bit, which confuses purge_dead_edges.

Reply via email to