aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2013-02-27 22:33:20 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2013-02-27 22:33:20 +0100
commit97785e5285c9543de44858989f33f6609e0bc538 (patch)
tree9b8713ef2690631d9889ecae3e6a8fdebeea9de0 /gcc
parent140bec21b86df21fd9a0105dc5334ac45d172505 (diff)
downloadgcc-97785e5285c9543de44858989f33f6609e0bc538.zip
gcc-97785e5285c9543de44858989f33f6609e0bc538.tar.gz
gcc-97785e5285c9543de44858989f33f6609e0bc538.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog15
-rw-r--r--gcc/ipa-reference.c8
2 files changed, 13 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4ebe503..0ef9eb7 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 98c2056..f3c483f 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;