aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2010-11-15 23:31:47 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2010-11-15 23:31:47 +0100
commit567b99c86ed9aa49d20979160613d735555e81f4 (patch)
treec16d1988a30f0cf7d0b8af94b59218433855d7eb
parent7a4f257ddd7903fd2553d92a4e6539d8fa6a67e5 (diff)
downloadgcc-567b99c86ed9aa49d20979160613d735555e81f4.zip
gcc-567b99c86ed9aa49d20979160613d735555e81f4.tar.gz
gcc-567b99c86ed9aa49d20979160613d735555e81f4.tar.bz2
re PR tree-optimization/46491 (ipa-pure-const.c miscompilation)
PR tree-optimization/46491 * gcc.target/i386/pr46491.c: New test. From-SVN: r166777
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.target/i386/pr46491.c22
2 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index aeaf08b..82413bd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2010-11-15 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/46491
+ * gcc.target/i386/pr46491.c: New test.
+
PR tree-optimization/46461
* gcc.c-torture/compile/pr46461.c: New test.
diff --git a/gcc/testsuite/gcc.target/i386/pr46491.c b/gcc/testsuite/gcc.target/i386/pr46491.c
new file mode 100644
index 0000000..82f704c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr46491.c
@@ -0,0 +1,22 @@
+/* PR tree-optimization/46491 */
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+extern void abort (void);
+
+__attribute__((noinline)) int
+foo (int *p)
+{
+ int r;
+ asm ("movl $6, (%1)\n\txorl %0, %0" : "=r" (r) : "r" (p) : "memory");
+ return r;
+}
+
+int
+main (void)
+{
+ int p = 8;
+ if ((foo (&p) ? : p) != 6)
+ abort ();
+ return 0;
+}