diff options
author | Richard Guenther <rguenther@suse.de> | 2009-01-31 10:25:41 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2009-01-31 10:25:41 +0000 |
commit | 14c28276e0f55bf6a3aeea783db18c747794867c (patch) | |
tree | 0b7d3b890c6fb7e3de00b4d1b7fd57fc3f6c4627 /gcc/tree-ssa-structalias.c | |
parent | 907884c92a19b66fac77e453eabfbc3c64665266 (diff) | |
download | gcc-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.c | 12 |
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) |