diff options
author | Richard Biener <rguenther@suse.de> | 2012-12-18 14:39:49 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-12-18 14:39:49 +0000 |
commit | 867fdd05e4de59b21ea5fec6182127404cc94712 (patch) | |
tree | 965e63d5d06c276a59bece27337abea448f54c59 /gcc/loop-init.c | |
parent | 0b8ca8fefec7479e91654819be9b77362406b1b5 (diff) | |
download | gcc-867fdd05e4de59b21ea5fec6182127404cc94712.zip gcc-867fdd05e4de59b21ea5fec6182127404cc94712.tar.gz gcc-867fdd05e4de59b21ea5fec6182127404cc94712.tar.bz2 |
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.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/loop-init.c b/gcc/loop-init.c index f140686..b981762 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; } |