summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-ter.c
diff options
context:
space:
mode:
authoramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-19 17:37:13 +0000
committeramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-19 17:37:13 +0000
commit464cc29ad11b1f3205c995e05ee5e87a089e5962 (patch)
tree106b4f09aca3c4dd8a7f19cdcb27f65b79ab7822 /gcc/tree-ssa-ter.c
parent8eb67406e9e9d5a7a22ad34ca7b02b1ea0d25d22 (diff)
downloadgcc-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.c27
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. */