summaryrefslogtreecommitdiff
path: root/gcc/cfgloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cfgloop.c')
-rw-r--r--gcc/cfgloop.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c
index 9806090f1a9..3c8df30cd72 100644
--- a/gcc/cfgloop.c
+++ b/gcc/cfgloop.c
@@ -1542,7 +1542,12 @@ verify_loop_structure (void)
eloops++;
for (loop = bb->loop_father;
- loop != e->dest->loop_father;
+ loop != e->dest->loop_father
+ /* When a loop exit is also an entry edge which
+ can happen when avoiding CFG manipulations
+ then the last loop exited is the outer loop
+ of the loop entered. */
+ && loop != loop_outer (e->dest->loop_father);
loop = loop_outer (loop))
{
eloops--;