diff options
author | amacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-09-19 17:37:13 +0000 |
---|---|---|
committer | amacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-09-19 17:37:13 +0000 |
commit | 464cc29ad11b1f3205c995e05ee5e87a089e5962 (patch) | |
tree | 106b4f09aca3c4dd8a7f19cdcb27f65b79ab7822 /gcc/tree-ssa-ter.c | |
parent | 8eb67406e9e9d5a7a22ad34ca7b02b1ea0d25d22 (diff) | |
download | gcc-464cc29ad11b1f3205c995e05ee5e87a089e5962.tar.gz |
PR middle-end/37567
* tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
empty before freeing them.
(find_replaceable_exprs): Move asserts to free_temp_expr_table.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140494 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-ter.c')
-rw-r--r-- | gcc/tree-ssa-ter.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/gcc/tree-ssa-ter.c b/gcc/tree-ssa-ter.c index 099c19742e4..cb393fba32b 100644 --- a/gcc/tree-ssa-ter.c +++ b/gcc/tree-ssa-ter.c @@ -220,22 +220,22 @@ static gimple * free_temp_expr_table (temp_expr_table_p t) { gimple *ret = NULL; - unsigned i; #ifdef ENABLE_CHECKING unsigned x; for (x = 0; x <= num_var_partitions (t->map); x++) gcc_assert (!t->kill_list[x]); + for (x = 0; x < num_ssa_names + 1; x++) + { + gcc_assert (t->expr_decl_uids[x] == NULL); + gcc_assert (t->partition_dependencies[x] == NULL); + } #endif BITMAP_FREE (t->partition_in_use); BITMAP_FREE (t->new_replaceable_dependencies); - for (i = 0; i <= num_ssa_names; i++) - if (t->expr_decl_uids[i]) - BITMAP_FREE (t->expr_decl_uids[i]); free (t->expr_decl_uids); - free (t->kill_list); free (t->partition_dependencies); free (t->num_in_part); @@ -664,27 +664,14 @@ find_replaceable_exprs (var_map map) FOR_EACH_BB (bb) { find_replaceable_in_bb (table, bb); - gcc_assert (bitmap_empty_p (table->partition_in_use)); - #ifdef ENABLE_CHECKING - { - unsigned i; - /* Make sure all the tables have been cleared out. */ - for (i = 0; i < num_ssa_names + 1; i++) - { - gcc_assert (table->partition_dependencies[i] == NULL); - gcc_assert (table->expr_decl_uids[i] == NULL); - if (i < num_var_partitions (map)) - gcc_assert (table->kill_list[i] == NULL); - } - } + gcc_assert (bitmap_empty_p (table->partition_in_use)); #endif } ret = free_temp_expr_table (table); return ret; -} - +} /* Dump TER expression table EXPR to file F. */ |