From 97785e5285c9543de44858989f33f6609e0bc538 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@gcc.gnu.org>
Date: Wed, 27 Feb 2013 22:33:20 +0100
Subject: [PATCH] re PR middle-end/56461 (GCC is leaking lots of memory)

	PR middle-end/56461
	* ipa-reference.c (propagate): Free node_info even for alias nodes.

From-SVN: r196319
---
 gcc/ChangeLog       | 15 ++++++++++-----
 gcc/ipa-reference.c |  8 +++-----
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4ebe5039cd24..0ef9eb7068b0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,9 +1,14 @@
-2013-02-27  Edgar E. Iglesias <edgar.iglesias@gmail.com>
+2013-02-27  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/56461
+	* ipa-reference.c (propagate): Free node_info even for alias nodes.
+
+2013-02-27  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
 
-	*  config/microblaze/microblaze.c (microblaze_emit_compare):
-	Use xor for EQ/NE comparisions
-	*  config/microblaze/microblaze.md (cstoresf4): Add constraints
-	(cbranchsf4): Adjust operator to comparison_operator
+	* config/microblaze/microblaze.c (microblaze_emit_compare):
+	Use xor for EQ/NE comparisions.
+	* config/microblaze/microblaze.md (cstoresf4): Add constraints
+	(cbranchsf4): Adjust operator to comparison_operator.
 
 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
 
diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
index 98c2056839ca..f3c483f67f90 100644
--- a/gcc/ipa-reference.c
+++ b/gcc/ipa-reference.c
@@ -834,12 +834,10 @@ propagate (void)
       ipa_reference_global_vars_info_t node_g;
       ipa_reference_optimization_summary_t opt;
 
-      if (node->alias)
-        continue;
-
       node_info = get_reference_vars_info (node);
-      if (cgraph_function_body_availability (node) > AVAIL_OVERWRITABLE
-	  || (flags_from_decl_or_type (node->symbol.decl) & ECF_LEAF))
+      if (!node->alias
+	  && (cgraph_function_body_availability (node) > AVAIL_OVERWRITABLE
+	      || (flags_from_decl_or_type (node->symbol.decl) & ECF_LEAF)))
 	{
 	  node_g = &node_info->global;
 
-- 
GitLab