From: Andrey Belevantsev Date: Wed, 25 Jan 2012 13:20:43 +0000 (+0400) Subject: re PR rtl-optimization/48374 (ICE: in single_succ_edge, at basic-block.h:562 with... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3dbdd1b950ee88aa90bd091026e0e7c6459b9e45;p=gcc.git re PR rtl-optimization/48374 (ICE: in single_succ_edge, at basic-block.h:562 with -fselective-scheduling2 and __builtin_unreachable()) 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index af7119b234e..f0940907ce5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-01-25 Andrey Belevantsev + + PR rtl-optimization/48374 + * sel-sched-ir.h (get_all_loop_exits): Check for zero successors. + 2012-01-25 Andrey Belevantsev * tree-predcom.c (tree_predictive_commoning_loop): Bail out when diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h index c8f8be6658d..ede08e4d0ae 100644 --- a/gcc/sel-sched-ir.h +++ b/gcc/sel-sched-ir.h @@ -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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dae53940980..f9aa4e7a932 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-01-25 Andrey Belevantsev + + PR rtl-optimization/48374 + * gcc.dg/pr48374.c: New test. + 2012-01-25 Greta Yorsh * gcc.dg/pr50908-2.c (dg-options): Add -fno-short-enums.