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  <rguent...@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.

Reply via email to