20020413-1.c: New test.
authorDavid S. Miller <davem@redhat.com>
Sat, 13 Apr 2002 10:32:46 +0000 (03:32 -0700)
committerDavid S. Miller <davem@gcc.gnu.org>
Sat, 13 Apr 2002 10:32:46 +0000 (03:32 -0700)
2002-04-13  David S. Miller  <davem@redhat.com>

* gcc.c-torture/execute/20020413-1.c: New test.

From-SVN: r52272

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

index 66df3d09fefb39ef7b50a864c0d3e4126a8ca5b8..3d0759d0139c716d296844a0941e396cfeb27162 100644 (file)
@@ -1,3 +1,7 @@
+2002-04-13  David S. Miller  <davem@redhat.com>
+
+       * gcc.c-torture/execute/20020413-1.c: New test.
+
 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
 
        * gcc.dg/asm-6.c,
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020413-1.c b/gcc/testsuite/gcc.c-torture/execute/20020413-1.c
new file mode 100644 (file)
index 0000000..fdef9ee
--- /dev/null
@@ -0,0 +1,36 @@
+void test(long double val, int *eval)
+{
+  long double tmp = 1.0l;
+  int i = 0;
+
+  if (val < 0.0l)
+    val = -val;
+
+  if (val >= tmp)
+    while (tmp < val)
+      {
+       tmp *= 2.0l;
+       if (i++ >= 10)
+         abort ();
+      }
+  else if (val != 0.0l)
+    while (val < tmp)
+      {
+       tmp /= 2.0l;
+       if (i++ >= 10)
+         abort ();
+      }
+
+  *eval = i;
+}
+
+int main(void)
+{
+  int eval;
+
+  test(3.0, &eval);
+  test(3.5, &eval);
+  test(4.0, &eval);
+  test(5.0, &eval);
+  exit (0);
+}