This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/51106] [4.5/4.6 Regression] ICE in move_insn, at haifa-sched.c:2314


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

Andrey Belevantsev <abel at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |rguenth at gcc dot gnu.org
         Resolution|FIXED                       |
   Target Milestone|4.5.4                       |4.8.0
      Known to fail|                            |4.8.0

--- Comment #13 from Andrey Belevantsev <abel at gcc dot gnu.org> 2012-03-27 12:42:06 UTC ---
It's failing not only on sh, but on x86-64 too, started with (no surprise here)
r185564:

    2012-03-20  Richard Guenther  <rguenther@suse.de>

        * tree-pass.h (pass_rtl_eh): Remove.

Richard, the issue here was that when removing the wrong asm jump, we need also
to fixup the cfg.  This can be done by the purge_dead_edges call because as
Jakub mentioned in comment #3 the basic block with the asm has two successor
edges, one of them is fallthru.  After your patch (probably because of the new
call to cleanup_cfg) there is no more fallthru edge but a single edge.  Which
blows up purge_dead_edges called from delete_insn_and_edges.  So probably
purge_dead_edges should be fixed to expect not having a fallthru edge -- Jakub
may have more context here.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]