diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2006-11-13 02:18:07 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2006-11-13 02:18:07 +0000 |
commit | 163b8581869310a93a40d44711095674ba76ca77 (patch) | |
tree | be6ebb4847e8366515d88e069ffd5a3b7860288f /gcc | |
parent | 3b279c7ae79eff94342d90e7a0d7ebad998500a9 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-structalias.c | 7 |
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); } |