This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/51106] [4.5/4.6 Regression] ICE in move_insn, at haifa-sched.c:2314
- From: "abel at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 27 Mar 2012 14:08:23 +0000
- Subject: [Bug target/51106] [4.5/4.6 Regression] ICE in move_insn, at haifa-sched.c:2314
- Auto-submitted: auto-generated
- References: <bug-51106-4@http.gcc.gnu.org/bugzilla/>
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.