re PR rtl-optimization/48374 (ICE: in single_succ_edge, at basic-block.h:562 with...
authorAndrey Belevantsev <abel@ispras.ru>
Wed, 25 Jan 2012 13:20:43 +0000 (17:20 +0400)
committerAndrey Belevantsev <abel@gcc.gnu.org>
Wed, 25 Jan 2012 13:20:43 +0000 (17:20 +0400)
gcc:
PR rtl-optimization/48374
        * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.

testsuite:
        PR rtl-optimization/48374
        * gcc.dg/pr48374.c: New test.

From-SVN: r183519

gcc/ChangeLog
gcc/sel-sched-ir.h
gcc/testsuite/ChangeLog

index af7119b..f094090 100644 (file)
@@ -1,5 +1,10 @@
 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
 
+       PR rtl-optimization/48374
+       * sel-sched-ir.h (get_all_loop_exits): Check for zero successors. 
+
+2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
+
        * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
        compute_data_dependences_for_loop returns false.
        * tree-parloops.c (loop_parallel_p): Likewise.
index c8f8be6..ede08e4 100644 (file)
@@ -1119,7 +1119,8 @@ get_all_loop_exits (basic_block bb)
   /* If bb is empty, and we're skipping to loop exits, then
      consider bb as a possible gate to the inner loop now.  */
   while (sel_bb_empty_or_nop_p (bb)
-        && in_current_region_p (bb))
+        && in_current_region_p (bb)
+        && EDGE_COUNT (bb->succs) > 0)
     {
       bb = single_succ (bb);
 
index dae5394..f9aa4e7 100644 (file)
@@ -1,3 +1,8 @@
+2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR rtl-optimization/48374
+       * gcc.dg/pr48374.c: New test.
+
 2012-01-25  Greta Yorsh  <Greta.Yorsh@arm.com>
 
        * gcc.dg/pr50908-2.c (dg-options): Add -fno-short-enums.