diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0ef9eb7068b0a5777d2a932cb02027eeca675dc9..8afdf058d3b3c2cc6c9a12d6047e8d830868ed0d 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 9a67f3c0be3f0f638eb5cb85dbf6a5da2b6e1e68..d01b053a3f9b7ac82e5aba19cbbeccb0305d01db 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