aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-structalias.c12
2 files changed, 12 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e871bd6..96051f6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2009-01-31 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/38937
+ * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
+ computing the transitive closure.
+
2009-01-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39041
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)