aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2007-04-28 10:00:44 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2007-04-28 08:00:44 +0000
commit3722506a9eed8354b1bc45562f98e2c551d23c28 (patch)
tree6d815e4e61f8b9aa0b5bfc6b631453fcd1edda77 /gcc/tree-cfg.c
parent3389ed59f601a94aadcd8fc0f625cbd4720b9bd5 (diff)
downloadgcc-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.c7
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)