OSDN Git Service

PR c/12553
[pf3gnuchains/gcc-fork.git] / gcc / cfgloopmanip.c
index de1210c..ca50760 100644 (file)
@@ -310,18 +310,22 @@ fix_irreducible_loops (basic_block from)
        }
 
       for (i = 0; i < n_edges; i++)
-       if (e->flags & EDGE_IRREDUCIBLE_LOOP)
-         {
-           if (!flow_bb_inside_loop_p (from->loop_father, e->dest))
-             continue;
+       {
+         e = edges[i];
 
-           e->flags &= ~EDGE_IRREDUCIBLE_LOOP;
-           if (TEST_BIT (on_stack, e->dest->index))
-             continue;
+         if (e->flags & EDGE_IRREDUCIBLE_LOOP)
+           {
+             if (!flow_bb_inside_loop_p (from->loop_father, e->dest))
+               continue;
 
-           SET_BIT (on_stack, e->dest->index);
-           stack[stack_top++] = e->dest;
-         }
+             e->flags &= ~EDGE_IRREDUCIBLE_LOOP;
+             if (TEST_BIT (on_stack, e->dest->index))
+               continue;
+
+             SET_BIT (on_stack, e->dest->index);
+             stack[stack_top++] = e->dest;
+           }
+       }
       free (edges);
     }