diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2007-04-28 10:00:44 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2007-04-28 08:00:44 +0000 |
commit | 3722506a9eed8354b1bc45562f98e2c551d23c28 (patch) | |
tree | 6d815e4e61f8b9aa0b5bfc6b631453fcd1edda77 /gcc/tree-cfg.c | |
parent | 3389ed59f601a94aadcd8fc0f625cbd4720b9bd5 (diff) | |
download | gcc-3722506a9eed8354b1bc45562f98e2c551d23c28.zip gcc-3722506a9eed8354b1bc45562f98e2c551d23c28.tar.gz gcc-3722506a9eed8354b1bc45562f98e2c551d23c28.tar.bz2 |
tree-cfg.c (move_block_to_fn): Release bb from dominance info.
* tree-cfg.c (move_block_to_fn): Release bb from dominance
info. Update last_basic_block correctly.
From-SVN: r124257
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 59e1cc3..89339bc 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -4571,6 +4571,9 @@ move_block_to_fn (struct function *dest_cfun, basic_block bb, struct move_stmt_d d; unsigned old_len, new_len; + /* Remove BB from dominance structures. */ + delete_from_dominance_info (CDI_DOMINATORS, bb); + /* Link BB to the new linked list. */ move_block_after (bb, after); @@ -4589,8 +4592,8 @@ move_block_to_fn (struct function *dest_cfun, basic_block bb, /* Grow DEST_CFUN's basic block array if needed. */ cfg = dest_cfun->cfg; cfg->x_n_basic_blocks++; - if (bb->index > cfg->x_last_basic_block) - cfg->x_last_basic_block = bb->index; + if (bb->index >= cfg->x_last_basic_block) + cfg->x_last_basic_block = bb->index + 1; old_len = VEC_length (basic_block, cfg->x_basic_block_info); if ((unsigned) cfg->x_last_basic_block >= old_len) |