re PR rtl-optimization/64255 (failures with -O2 optimization on i >= 0 ? (unsigned...
authorJakub Jelinek <jakub@redhat.com>
Fri, 12 Dec 2014 12:43:34 +0000 (13:43 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 12 Dec 2014 12:43:34 +0000 (13:43 +0100)
PR rtl-optimization/64255
* gcc.c-torture/execute/pr64255.c: New test.

PR rtl-optimization/64260
* gcc.c-torture/execute/pr64260.c: New test.

From-SVN: r218665

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr64255.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/pr64260.c [new file with mode: 0644]

index fc4869fe2552270212ac135f8c08aa0f506b31cf..e4eb34b57025f9bb3cf7953a2b9e230a7f5e34a2 100644 (file)
@@ -1,3 +1,11 @@
+2014-12-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/64255
+       * gcc.c-torture/execute/pr64255.c: New test.
+
+       PR rtl-optimization/64260
+       * gcc.c-torture/execute/pr64260.c: New test.
+
 2014-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>
 
        * gcc.dg/pr64007.c: New test.
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr64255.c b/gcc/testsuite/gcc.c-torture/execute/pr64255.c
new file mode 100644 (file)
index 0000000..447638a
--- /dev/null
@@ -0,0 +1,28 @@
+/* PR rtl-optimization/64255 */
+
+__attribute__((noinline, noclone)) void
+bar (long i, unsigned long j)
+{
+  if (i != 1 || j != 1)
+    __builtin_abort ();
+}
+
+__attribute__((noinline, noclone)) void
+foo (long i)
+{
+  unsigned long j;
+
+  if (!i)
+    return;
+  j = i >= 0 ? (unsigned long) i : - (unsigned long) i;
+  if ((i >= 0 ? (unsigned long) i : - (unsigned long) i) != j)
+    __builtin_abort ();
+  bar (i, j);
+}
+
+int
+main ()
+{
+  foo (1);
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr64260.c b/gcc/testsuite/gcc.c-torture/execute/pr64260.c
new file mode 100644 (file)
index 0000000..e6cd6c2
--- /dev/null
@@ -0,0 +1,25 @@
+/* PR rtl-optimization/64260 */
+
+int a = 1, b;
+
+void
+foo (char p)
+{
+  int t = 0;
+  for (; b < 1; b++)
+    {
+      int *s = &a;
+      if (--t)
+       *s &= p;
+      *s &= 1;
+    }
+}
+
+int
+main ()
+{
+  foo (0);
+  if (a != 0)
+    __builtin_abort ();
+  return 0;
+}