From 1d49ee6a7985f8eb2a759a3d22fb3c8fec92a403 Mon Sep 17 00:00:00 2001 From: Maxim Kuvyrkov Date: Thu, 7 Dec 2006 10:02:35 +0000 Subject: re PR target/29794 (cc1 segfaults with -O3 -msched-control-spec) 2006-12-07 Maxim Kuvyrkov PR target/29794 * sched-rgn.c (add_block1): Use correct initializer. From-SVN: r119613 --- gcc/ChangeLog | 5 +++++ gcc/sched-rgn.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 51476b1..e341047 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-12-07 Maxim Kuvyrkov + + PR target/29794 + * sched-rgn.c (add_block1): Use correct initializer. + 2006-12-07 Richard Guenther * tree-vect-transform.c (vectorizable_call): Fix leftover of diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c index 8b9cf9931..7f7f586 100644 --- a/gcc/sched-rgn.c +++ b/gcc/sched-rgn.c @@ -3124,9 +3124,15 @@ add_block1 (basic_block bb, basic_block after) is _always_ valid for access. */ i = BLOCK_TO_BB (after->index) + 1; - for (pos = ebb_head[i]; rgn_bb_table[pos] != after->index; pos--); + pos = ebb_head[i] - 1; + /* Now POS is the index of the last block in the region. */ + + /* Find index of basic block AFTER. */ + for (; rgn_bb_table[pos] != after->index; pos--); + pos++; gcc_assert (pos > ebb_head[i - 1]); + /* i - ebb right after "AFTER". */ /* ebb_head[i] - VALID. */ -- cgit v1.1