diff options
Diffstat (limited to 'gcc/tree-cfgcleanup.c')
-rw-r--r-- | gcc/tree-cfgcleanup.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c index 3c69a7d..9b314f7 100644 --- a/gcc/tree-cfgcleanup.c +++ b/gcc/tree-cfgcleanup.c @@ -57,7 +57,10 @@ remove_fallthru_edge (vec<edge, va_gc> *ev) FOR_EACH_EDGE (e, ei, ev) if ((e->flags & EDGE_FALLTHRU) != 0) { - remove_edge_and_dominated_blocks (e); + if (e->flags & EDGE_COMPLEX) + e->flags &= ~EDGE_FALLTHRU; + else + remove_edge_and_dominated_blocks (e); return true; } return false; |