aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2006-11-13 02:18:07 +0000
committerDaniel Berlin <dberlin@gcc.gnu.org>2006-11-13 02:18:07 +0000
commit163b8581869310a93a40d44711095674ba76ca77 (patch)
treebe6ebb4847e8366515d88e069ffd5a3b7860288f /gcc
parent3b279c7ae79eff94342d90e7a0d7ebad998500a9 (diff)
downloadgcc-163b8581869310a93a40d44711095674ba76ca77.zip
gcc-163b8581869310a93a40d44711095674ba76ca77.tar.gz
gcc-163b8581869310a93a40d44711095674ba76ca77.tar.bz2
re PR java/29587 (jc1: out of memory allocating 4072 bytes after a total of 708630224 bytes)
2006-11-12 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/29587 * tree-ssa-structalias.c (process_constraint): Don't mark address taken due only to escaped vars constraint. From-SVN: r118742
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-structalias.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bf326de..ce01cd2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-11-12 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/29587
+ * tree-ssa-structalias.c (process_constraint): Don't
+ mark address taken due only to escaped vars constraint.
+
2006-11-12 Michael Matz <matz@suse.de>
Roger Sayle <roger@eyesopen.com>
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index c7ee8aa..42099dd 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -2327,8 +2327,11 @@ process_constraint (constraint_t t)
varinfo_t vi;
gcc_assert (rhs.offset == 0);
- for (vi = get_varinfo (rhs.var); vi != NULL; vi = vi->next)
- vi->address_taken = true;
+ /* No need to mark address taken simply because of escaped vars
+ constraints. */
+ if (lhs.var != escaped_vars_id)
+ for (vi = get_varinfo (rhs.var); vi != NULL; vi = vi->next)
+ vi->address_taken = true;
VEC_safe_push (constraint_t, heap, constraints, t);
}