From 90e709fd8ea149dacde675363135a0ddea053b09 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Wed, 27 Feb 2013 22:34:27 +0100
Subject: [PATCH] re PR middle-end/56461 (GCC is leaking lots of memory)

	PR middle-end/56461
	* ipa-cp.c (decide_whether_version_node): Call vec_free on
	known_aggs[i].items and release known_aggs vector.

From-SVN: r196320
---
 gcc/ChangeLog | 4 ++++
 gcc/ipa-cp.c  | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0ef9eb7068b0..8afdf058d3b3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
 
+	PR middle-end/56461
+	* ipa-cp.c (decide_whether_version_node): Call vec_free on
+	known_aggs[i].items and release known_aggs vector.
+
 	PR middle-end/56461
 	* ipa-reference.c (propagate): Free node_info even for alias nodes.
 
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 9a67f3c0be3f..d01b053a3f9b 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -3406,6 +3406,9 @@ decide_whether_version_node (struct cgraph_node *node)
       info = IPA_NODE_REF (node);
       info->do_clone_for_all_contexts = false;
       IPA_NODE_REF (clone)->is_all_contexts_clone = true;
+      for (i = 0; i < count ; i++)
+	vec_free (known_aggs[i].items);
+      known_aggs.release ();
       ret = true;
     }
   else
-- 
GitLab