aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2007-06-12 20:25:23 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2007-06-12 20:25:23 +0000
commit773a78612016aafd567920f86a36f28703d56674 (patch)
tree8ad49bdd18bc88a9bb08e0ffa6a51811c14ec4d4
parent4543943ad4323c336993836933f7011c295fd50f (diff)
downloadgcc-773a78612016aafd567920f86a36f28703d56674.zip
gcc-773a78612016aafd567920f86a36f28703d56674.tar.gz
gcc-773a78612016aafd567920f86a36f28703d56674.tar.bz2
tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything flag on ref-all pointers.
* tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything flag on ref-all pointers. From-SVN: r125656
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-ssa-alias.c8
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e5a53a2..b46c15e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
+ flag on ref-all pointers.
+
2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR middle-end/31579
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index cf5dc2b..31911e6 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -2415,8 +2415,14 @@ finalize_ref_all_pointers (struct alias_info *ai)
for (i = 0; i < ai->num_pointers; i++)
{
tree ptr = ai->pointers[i]->var, tag;
+ /* Avoid adding to self and clean up. */
if (PTR_IS_REF_ALL (ptr))
- continue;
+ {
+ struct ptr_info_def *pi = get_ptr_info (ptr);
+ if (pi->is_dereferenced)
+ pi->pt_anything = 0;
+ continue;
+ }
tag = symbol_mem_tag (ptr);
if (is_call_clobbered (tag))
add_may_alias (ai->ref_all_symbol_mem_tag, tag);