diff options
author | Andrey Belevantsev <abel@ispras.ru> | 2012-01-25 17:20:43 +0400 |
---|---|---|
committer | Andrey Belevantsev <abel@gcc.gnu.org> | 2012-01-25 17:20:43 +0400 |
commit | 3dbdd1b950ee88aa90bd091026e0e7c6459b9e45 (patch) | |
tree | 526c83bf03620e9bcb14891206b20b40038772dc /gcc/sel-sched-ir.h | |
parent | 9ca3d00efe98f6bdcb48b6fc7a188fd1193e569f (diff) | |
download | gcc-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.h | 3 |
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); |