From 73fd4ad6cd12dbb4ba0fbcf4e7fa11d22fd05ea3 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Mon, 11 Jun 2007 15:40:52 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/tree-ssa-structalias.c | 15 +++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 13cb914ebed..a4414797048 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-06-11 Eric Botcazou + + * tree-ssa-structalias.c (find_what_p_points_to): Return false + for ref-all pointers that point-to anything. + 2007-06-11 Joseph Myers * config/arm/arm.c (arm_output_dwarf_dtprel, diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 6b470b3143f..d351bf503c2 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; }