summaryrefslogtreecommitdiff
path: root/gcc/graphite-clast-to-gimple.c
diff options
context:
space:
mode:
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2010-01-07 18:32:51 +0000
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2010-01-07 18:32:51 +0000
commitcfd3faacbfa0ba6b08d75b41f7f876961f70337b (patch)
tree6e8b7af7a18c1c655884e15f7890e21a3bb5fd4c /gcc/graphite-clast-to-gimple.c
parenta1a6700b7a5a1b5911805b0e420628e45e762713 (diff)
downloadgcc-cfd3faacbfa0ba6b08d75b41f7f876961f70337b.tar.gz
Fix memory leaks.
2010-01-06 Sebastian Pop <sebastian.pop@amd.com> * graphite-clast-to-gimple.c (save_clast_name_index): Free slot before allocating a new one. (copy_renames): Check that slot is not NULL. (mark_bb_with_pbb): Same. (compute_cloog_iv_types_1): Same. * graphite-interchange.c (lst_perfect_nestify): Free the before, nest, and after LSTs. (lst_try_interchange_loops): Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155702 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite-clast-to-gimple.c')
-rw-r--r--gcc/graphite-clast-to-gimple.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c
index 93138b6bd89..41094614f10 100644
--- a/gcc/graphite-clast-to-gimple.c
+++ b/gcc/graphite-clast-to-gimple.c
@@ -117,7 +117,12 @@ save_clast_name_index (htab_t index_table, const char *name, int index)
slot = htab_find_slot (index_table, &tmp, INSERT);
if (slot)
- *slot = new_clast_name_index (name, index);
+ {
+ if (*slot)
+ free (*slot);
+
+ *slot = new_clast_name_index (name, index);
+ }
}
/* Print to stderr the element ELT. */
@@ -629,7 +634,7 @@ copy_renames (void **slot, void *s)
tmp.old_name = old_name;
x = htab_find_slot (res, &tmp, INSERT);
- if (!*x)
+ if (x && !*x)
*x = new_rename_map_elt (old_name, expr);
return 1;
@@ -660,7 +665,7 @@ mark_bb_with_pbb (poly_bb_p pbb, basic_block bb, htab_t bb_pbb_mapping)
tmp.bb = bb;
x = htab_find_slot (bb_pbb_mapping, &tmp, INSERT);
- if (!*x)
+ if (x && !*x)
*x = new_bb_pbb_def (bb, pbb);
}
@@ -1026,7 +1031,7 @@ compute_cloog_iv_types_1 (poly_bb_p pbb, struct clast_user_stmt *user_stmt)
slot = htab_find_slot (GBB_CLOOG_IV_TYPES (gbb), &tmp, INSERT);
- if (!*slot)
+ if (slot && !*slot)
{
tree oldiv = pbb_to_depth_to_oldiv (pbb, index);
tree type = oldiv ? TREE_TYPE (oldiv) : integer_type_node;