re PR middle-end/56461 (GCC is leaking lots of memory)
authorJakub Jelinek <jakub@redhat.com>
Wed, 27 Feb 2013 21:34:27 +0000 (22:34 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 27 Feb 2013 21:34:27 +0000 (22:34 +0100)
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
gcc/ipa-cp.c

index 0ef9eb7068b0a5777d2a932cb02027eeca675dc9..8afdf058d3b3c2cc6c9a12d6047e8d830868ed0d 100644 (file)
@@ -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.
 
index 9a67f3c0be3f0f638eb5cb85dbf6a5da2b6e1e68..d01b053a3f9b7ac82e5aba19cbbeccb0305d01db 100644 (file)
@@ -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