aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-structalias.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2007-06-11 15:40:52 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2007-06-11 15:40:52 +0000
commit73fd4ad6cd12dbb4ba0fbcf4e7fa11d22fd05ea3 (patch)
tree1b8157062e08bc40acc9e00f97163fff095d7437 /gcc/tree-ssa-structalias.c
parentafcc986d03991b070c7ab76159f5b792b94c0a80 (diff)
downloadgcc-73fd4ad6cd12dbb4ba0fbcf4e7fa11d22fd05ea3.zip
gcc-73fd4ad6cd12dbb4ba0fbcf4e7fa11d22fd05ea3.tar.gz
gcc-73fd4ad6cd12dbb4ba0fbcf4e7fa11d22fd05ea3.tar.bz2
tree-ssa-structalias.c (find_what_p_points_to): Return false for ref-all pointers that point-to anything.
* tree-ssa-structalias.c (find_what_p_points_to): Return false for ref-all pointers that point-to anything. From-SVN: r125620
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r--gcc/tree-ssa-structalias.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 6b470b3..d351bf5 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -4540,12 +4540,19 @@ find_what_p_points_to (tree p)
finished_solution = BITMAP_GGC_ALLOC ();
stats.points_to_sets_created++;
- /* Instead of using pt_anything, we instead merge in the SMT
- aliases for the underlying SMT. In addition, if they
- could have pointed to anything, they could point to
- global memory. */
+ /* Instead of using pt_anything, we merge in the SMT aliases
+ for the underlying SMT. In addition, if they could have
+ pointed to anything, they could point to global memory.
+ But we cannot do that for ref-all pointers because these
+ aliases have not been computed yet. */
if (was_pt_anything)
{
+ if (PTR_IS_REF_ALL (p))
+ {
+ pi->pt_anything = 1;
+ return false;
+ }
+
merge_smts_into (p, finished_solution);
pi->pt_global_mem = 1;
}