aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2007-09-09 16:23:26 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2007-09-09 16:23:26 +0000
commite9f91f6220e75cceed0abfe663bdf8d9ff51682b (patch)
tree9c2cccbb5e5a8ff05a9f73fd6d8a93b593ee8140
parent20dc9cf4eb6e140a7daa705dbac455daef891cab (diff)
downloadgcc-e9f91f6220e75cceed0abfe663bdf8d9ff51682b.zip
gcc-e9f91f6220e75cceed0abfe663bdf8d9ff51682b.tar.gz
gcc-e9f91f6220e75cceed0abfe663bdf8d9ff51682b.tar.bz2
tree-ssa-operands.c (add_virtual_operand): Only mark stores as has_volatile_ops if alias information is not available.
2007-09-09 Richard Guenther <rguenther@suse.de> * tree-ssa-operands.c (add_virtual_operand): Only mark stores as has_volatile_ops if alias information is not available. * gcc.c-torture/compile/20070906-1.c: New testcase. From-SVN: r128300
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20070906-1.c8
-rw-r--r--gcc/tree-ssa-operands.c3
4 files changed, 19 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0aa727d..ff54c46 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-09-09 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-operands.c (add_virtual_operand): Only mark
+ stores as has_volatile_ops if alias information is not available.
+
2007-09-09 Revital Eres <eres@il.ibm.com>
* doc/contrib.texi: Add myself.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3772b7b..02fc4ac 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2007-09-09 Richard Guenther <rguenther@suse.de>
+
+ * gcc.c-torture/compile/20070906-1.c: New testcase.
+
2007-09-09 Ira Rosen <irar@il.ibm.com>
* gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c: Add
diff --git a/gcc/testsuite/gcc.c-torture/compile/20070906-1.c b/gcc/testsuite/gcc.c-torture/compile/20070906-1.c
new file mode 100644
index 0000000..bec983f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20070906-1.c
@@ -0,0 +1,8 @@
+struct Bar {
+ int i[8];
+};
+struct Bar foo(struct Bar **p)
+{
+ return foo((struct Bar**)*p);
+}
+
diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c
index a3e34ec..3562e71 100644
--- a/gcc/tree-ssa-operands.c
+++ b/gcc/tree-ssa-operands.c
@@ -1511,7 +1511,8 @@ add_virtual_operand (tree var, stmt_ann_t s_ann, int flags,
if (aliases == NULL)
{
- if (!gimple_aliases_computed_p (cfun))
+ if (!gimple_aliases_computed_p (cfun)
+ && (flags & opf_def))
s_ann->has_volatile_ops = true;
/* The variable is not aliased or it is an alias tag. */