tree-eh.c (unsplit_eh): Do not unsplit if there's already an edge to the new destination block.

* tree-eh.c (unsplit_eh): Do not unsplit if there's already
        an edge to the new destination block.

From-SVN: r152310
This commit is contained in:
Richard Henderson 2009-09-29 16:46:02 -07:00 committed by Richard Henderson
parent 062a5fd1c0
commit f8fd49b549
2 changed files with 11 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2009-09-29 Richard Henderson <rth@redhat.com>
* tree-eh.c (unsplit_eh): Do not unsplit if there's already
an edge to the new destination block.
2009-09-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/41393

View File

@ -3369,6 +3369,12 @@ unsplit_eh (eh_landing_pad lp)
return false;
}
/* The new destination block must not already be a destination of
the source block, lest we merge fallthru and eh edges and get
all sorts of confused. */
if (find_edge (e_in->src, e_out->dest))
return false;
/* ??? I can't imagine there would be PHI nodes, since by nature
of critical edge splitting this block should never have been
a dominance frontier. If cfg cleanups somehow confuse this,