aboutsummaryrefslogtreecommitdiff
path: root/gcc/sel-sched-ir.h
diff options
context:
space:
mode:
authorAndrey Belevantsev <abel@ispras.ru>2012-01-25 17:20:43 +0400
committerAndrey Belevantsev <abel@gcc.gnu.org>2012-01-25 17:20:43 +0400
commit3dbdd1b950ee88aa90bd091026e0e7c6459b9e45 (patch)
tree526c83bf03620e9bcb14891206b20b40038772dc /gcc/sel-sched-ir.h
parent9ca3d00efe98f6bdcb48b6fc7a188fd1193e569f (diff)
downloadgcc-3dbdd1b950ee88aa90bd091026e0e7c6459b9e45.zip
gcc-3dbdd1b950ee88aa90bd091026e0e7c6459b9e45.tar.gz
gcc-3dbdd1b950ee88aa90bd091026e0e7c6459b9e45.tar.bz2
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
Diffstat (limited to 'gcc/sel-sched-ir.h')
-rw-r--r--gcc/sel-sched-ir.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h
index c8f8be66..ede08e4 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);