2006-11-12 Daniel Berlin <dberlin@dberlin.org>
authordberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Nov 2006 02:18:07 +0000 (02:18 +0000)
committerdberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Nov 2006 02:18:07 +0000 (02:18 +0000)
Fix PR tree-optimization/29587
* tree-ssa-structalias.c (process_constraint): Don't
mark address taken due only to escaped vars constraint.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118742 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-ssa-structalias.c

index bf326de..ce01cd2 100644 (file)
@@ -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>
 
index c7ee8aa..42099dd 100644 (file)
@@ -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);
     }