diff mbox

[2/6] Fix memory leak in tree-ssa

Message ID f2ba446ba6215b71804dedd71fd869c04e4f43e2.1448286565.git.mliska@suse.cz
State New
Headers show

Commit Message

Martin Liška Nov. 23, 2015, 1:48 p.m. UTC
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(+)

Comments

Martin Liška Nov. 26, 2015, 9 p.m. UTC | #1
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 mbox

Patch

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;
 }