summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-uncprop.c
diff options
context:
space:
mode:
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>2015-11-24 11:46:10 +0000
committerTrevor Saunders <tbsaunde@gcc.gnu.org>2015-11-24 11:46:10 +0000
commit76b6ddbfe234ed3d68dfaaadfc85a86119a3d0af (patch)
tree58070dd13c6248487e3ae1a088186d0901249d7f /gcc/tree-ssa-uncprop.c
parentcfa55545f9aff809f267babb110b1037e164a1cd (diff)
destroy values as well as keys when removing them from hash maps
gcc/ChangeLog: 2015-11-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * hash-map-traits.h (simple_hashmap_traits ::remove): call destructors on values that are being removed. * mem-stats.h (hash_map): Pass type of values to simple_hashmap_traits. * tree-sra.c (sra_deinitialize): Remove work around for hash maps not destructing values. * genmatch.c (sinfo_hashmap_traits): Adjust. * tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise. From-SVN: r230801
Diffstat (limited to 'gcc/tree-ssa-uncprop.c')
-rw-r--r--gcc/tree-ssa-uncprop.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-uncprop.c b/gcc/tree-ssa-uncprop.c
index be6c209d7a4..23b4ca2a008 100644
--- a/gcc/tree-ssa-uncprop.c
+++ b/gcc/tree-ssa-uncprop.c
@@ -277,7 +277,8 @@ struct equiv_hash_elt
/* Value to ssa name equivalence hashtable helpers. */
-struct val_ssa_equiv_hash_traits : simple_hashmap_traits <tree_operand_hash>
+struct val_ssa_equiv_hash_traits : simple_hashmap_traits <tree_operand_hash,
+ vec<tree> >
{
template<typename T> static inline void remove (T &);
};