* recog.c (split_all_insns): Fix memory overflow.
authorJan Hubicka <jh@suse.cz>
Mon, 17 Feb 2003 15:21:32 +0000 (16:21 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Mon, 17 Feb 2003 15:21:32 +0000 (15:21 +0000)
From-SVN: r62998

gcc/ChangeLog
gcc/recog.c

index 2ce31e7..bb6f61d 100644 (file)
@@ -1,3 +1,7 @@
+Mon Feb 17 16:16:54 CET 2003  Jan Hubicka  <jh@suse.cz>
+
+       * recog.c (split_all_insns):  Fix memory overflow.
+
 2003-02-17  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/h8300/h8300.md (cmpqi): Remove mode from compare.
index bfa988b..6206be1 100644 (file)
@@ -2882,10 +2882,18 @@ split_all_insns (upd_life)
 
       find_many_sub_basic_blocks (blocks);
 
-      while (old_last_basic_block < last_basic_block)
+      if (old_last_basic_block != last_basic_block && upd_life)
        {
-         SET_BIT (blocks, old_last_basic_block);
-         old_last_basic_block++;
+         sbitmap new_blocks = sbitmap_alloc (last_basic_block);
+
+         sbitmap_copy (new_blocks, blocks);
+         while (old_last_basic_block < last_basic_block)
+           {
+             SET_BIT (new_blocks, old_last_basic_block);
+             old_last_basic_block++;
+           }
+         sbitmap_free (blocks);
+         new_blocks = blocks;
        }
     }