Hi!

I've committed these two testcases as obvious to trunk, they have been
fixed with the PR63917 r218658 fix.

2014-12-12  Jakub Jelinek  <ja...@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.

--- gcc/testsuite/gcc.c-torture/execute/pr64255.c.jj    2014-12-12 
09:12:31.940647593 +0100
+++ gcc/testsuite/gcc.c-torture/execute/pr64255.c       2014-12-12 
09:12:27.000000000 +0100
@@ -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;
+}
--- gcc/testsuite/gcc.c-torture/execute/pr64260.c.jj    2014-12-12 
09:11:27.847784037 +0100
+++ gcc/testsuite/gcc.c-torture/execute/pr64260.c       2014-12-12 
09:11:19.000000000 +0100
@@ -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;
+}

        Jakub

Reply via email to