summaryrefslogtreecommitdiff
path: root/gcc/loop-init.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2012-12-18 14:39:49 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-12-18 14:39:49 +0000
commit867fdd05e4de59b21ea5fec6182127404cc94712 (patch)
tree965e63d5d06c276a59bece27337abea448f54c59 /gcc/loop-init.c
parent0b8ca8fefec7479e91654819be9b77362406b1b5 (diff)
downloadgcc-867fdd05e4de59b21ea5fec6182127404cc94712.tar.gz
re PR middle-end/54838 (ICE: in merge_latch_edges, at cfgloop.c:678 with -ftracer)
2012-12-18 Richard Biener <rguenther@suse.de> PR middle-end/54838 * cfgloopmanip.c (fix_loop_structure): Re-discover latch edges first and mark loops for removal if no latch edges remain. Properly re-create LOOPS_HAVE_FALLTHRU_PREHEADERS. * loop-init.c (loop_optimizer_finalize): Set LOOPS_MAY_HAVE_MULTIPLE_LATCHES. * g++.dg/torture/pr54838.C: New testcase. From-SVN: r194582
Diffstat (limited to 'gcc/loop-init.c')
-rw-r--r--gcc/loop-init.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/loop-init.c b/gcc/loop-init.c
index f140686ba11..b981762a385 100644
--- a/gcc/loop-init.c
+++ b/gcc/loop-init.c
@@ -133,6 +133,7 @@ loop_optimizer_finalize (void)
| LOOPS_HAVE_PREHEADERS
| LOOPS_HAVE_SIMPLE_LATCHES
| LOOPS_HAVE_FALLTHRU_PREHEADERS);
+ loops_state_set (LOOPS_MAY_HAVE_MULTIPLE_LATCHES);
goto loop_fini_done;
}