Message ID | f2ba446ba6215b71804dedd71fd869c04e4f43e2.1448286565.git.mliska@suse.cz |
---|---|
State | New |
Headers | show |
On 11/23/2015 02:48 PM, marxin wrote: > gcc/ChangeLog: > > 2015-11-20 Martin Liska <mliska@suse.cz> > > * tree-ssa.c (redirect_edge_var_map_destroy): Release > vectors that are used as a second argument of a hash_map. > --- > gcc/tree-ssa.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c > index 02fca4c..db7d065 100644 > --- a/gcc/tree-ssa.c > +++ b/gcc/tree-ssa.c > @@ -121,6 +121,11 @@ redirect_edge_var_map_vector (edge e) > void > redirect_edge_var_map_destroy (void) > { > + if (edge_var_maps) > + for (hash_map<edge, auto_vec<edge_var_map> >::iterator it = > + edge_var_maps->begin (); it != edge_var_maps->end (); ++it) > + (*it).second.release (); > + > delete edge_var_maps; > edge_var_maps = NULL; > } > Hi. As Trevor fixed behavior of hash_maps that now release both key and value, the patch is not needed any more. Martin
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index 02fca4c..db7d065 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -121,6 +121,11 @@ redirect_edge_var_map_vector (edge e) void redirect_edge_var_map_destroy (void) { + if (edge_var_maps) + for (hash_map<edge, auto_vec<edge_var_map> >::iterator it = + edge_var_maps->begin (); it != edge_var_maps->end (); ++it) + (*it).second.release (); + delete edge_var_maps; edge_var_maps = NULL; }