aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <mkuvyrkov@ispras.ru>2006-12-07 10:02:35 +0000
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>2006-12-07 10:02:35 +0000
commit1d49ee6a7985f8eb2a759a3d22fb3c8fec92a403 (patch)
tree01128e69b85502902d613f0576dd919bc469c33f
parent9f9195633a4a608e677cfafd4e8d355342123cda (diff)
downloadgcc-1d49ee6a7985f8eb2a759a3d22fb3c8fec92a403.zip
gcc-1d49ee6a7985f8eb2a759a3d22fb3c8fec92a403.tar.gz
gcc-1d49ee6a7985f8eb2a759a3d22fb3c8fec92a403.tar.bz2
re PR target/29794 (cc1 segfaults with -O3 -msched-control-spec)
2006-12-07 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> PR target/29794 * sched-rgn.c (add_block1): Use correct initializer. From-SVN: r119613
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/sched-rgn.c8
2 files changed, 12 insertions, 1 deletions
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 <mkuvyrkov@ispras.ru>
+
+ PR target/29794
+ * sched-rgn.c (add_block1): Use correct initializer.
+
2006-12-07 Richard Guenther <rguenther@suse.de>
* 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. */