diff options
author | Jan Hubicka <jh@suse.cz> | 2003-02-17 16:21:32 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2003-02-17 15:21:32 +0000 |
commit | 35a3fa09ad2d51d4f65f9162372dad7a5735e599 (patch) | |
tree | 8baa63521dc2e4d2a19b829e3d2256baba739f1b | |
parent | 6dc503669cd2d2ddf9e556e15a493afd8603d0b1 (diff) | |
download | gcc-35a3fa09ad2d51d4f65f9162372dad7a5735e599.zip gcc-35a3fa09ad2d51d4f65f9162372dad7a5735e599.tar.gz gcc-35a3fa09ad2d51d4f65f9162372dad7a5735e599.tar.bz2 |
* recog.c (split_all_insns): Fix memory overflow.
From-SVN: r62998
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/recog.c | 14 |
2 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2ce31e7..bb6f61d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/recog.c b/gcc/recog.c index bfa988b..6206be1 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -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; } } |