]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/29794 (cc1 segfaults with -O3 -msched-control-spec)
authorMaxim Kuvyrkov <mkuvyrkov@ispras.ru>
Thu, 7 Dec 2006 10:02:35 +0000 (10:02 +0000)
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>
Thu, 7 Dec 2006 10:02:35 +0000 (10:02 +0000)
2006-12-07  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

PR target/29794
* sched-rgn.c (add_block1): Use correct initializer.

From-SVN: r119613

gcc/ChangeLog
gcc/sched-rgn.c

index 51476b1a7ddd49b80f4d0f0305fceaf7b491feea..e3410473d09ef32975a9bd02cc02730e65fea09e 100644 (file)
@@ -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
index 8b9cf9931beaf0914e77d379a65fc7aba5320072..7f7f58692388683a7856b9e072339e0f1b114350 100644 (file)
@@ -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.  */