aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-structalias.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2009-01-31 10:25:41 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2009-01-31 10:25:41 +0000
commit14c28276e0f55bf6a3aeea783db18c747794867c (patch)
tree0b7d3b890c6fb7e3de00b4d1b7fd57fc3f6c4627 /gcc/tree-ssa-structalias.c
parent907884c92a19b66fac77e453eabfbc3c64665266 (diff)
downloadgcc-14c28276e0f55bf6a3aeea783db18c747794867c.zip
gcc-14c28276e0f55bf6a3aeea783db18c747794867c.tar.gz
gcc-14c28276e0f55bf6a3aeea783db18c747794867c.tar.bz2
re PR tree-optimization/38937 (dereferencing pointer '<anonymous>' does break strict-aliasing)
2009-01-30 Richard Guenther <rguenther@suse.de> PR tree-optimization/38937 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut computing the transitive closure. From-SVN: r143819
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r--gcc/tree-ssa-structalias.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 21566bb..3e8940e 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -1502,12 +1502,6 @@ do_sd_constraint (constraint_graph_t graph, constraint_t c,
unsigned int j;
bitmap_iterator bi;
- if (bitmap_bit_p (delta, anything_id))
- {
- flag |= bitmap_set_bit (sol, anything_id);
- goto done;
- }
-
/* For x = *ESCAPED and x = *CALLUSED we want to compute the
reachability set of the rhs var. As a pointer to a sub-field
of a variable can also reach all other fields of the variable
@@ -1553,6 +1547,12 @@ do_sd_constraint (constraint_graph_t graph, constraint_t c,
}
}
+ if (bitmap_bit_p (delta, anything_id))
+ {
+ flag |= bitmap_set_bit (sol, anything_id);
+ goto done;
+ }
+
/* For each variable j in delta (Sol(y)), add
an edge in the graph from j to x, and union Sol(j) into Sol(x). */
EXECUTE_IF_SET_IN_BITMAP (delta, 0, j, bi)