2002-04-13 David S. Miller <davem@redhat.com>
authordavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 13 Apr 2002 10:32:46 +0000 (10:32 +0000)
committerdavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 13 Apr 2002 10:32:46 +0000 (10:32 +0000)
* gcc.c-torture/execute/20020413-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52272 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 66df3d0..3d0759d 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);
+}