intrinsic_nearest.f90: Disable tests of nearest around zero.
authorRichard Henderson <rth@redhat.com>
Fri, 30 Jul 2004 22:31:20 +0000 (15:31 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 30 Jul 2004 22:31:20 +0000 (15:31 -0700)
        * gfortran.fortran-torture/execute/intrinsic_nearest.f90: Disable
        tests of nearest around zero.

From-SVN: r85361

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.f90

index f334409cd5201c0bc143a6f040fd010e63b9ddbb..aaa540cc2bdc888aa338a5457f0bab1dabb62f51 100644 (file)
@@ -1,3 +1,8 @@
+2004-07-30  Richard Henderson  <rth@redhat.com>
+
+        * gfortran.fortran-torture/execute/intrinsic_nearest.f90: Disable
+        tests of nearest around zero.
+
 2004-07-30  Andrew Pinski  <apinski@apple.com>
 
        * gcc.c-torture/compile/20040730-1.c: New test.
index 435c6795c5db942471e1dd8530d5c8183e8005fb..364a3ac345ee094ce7f24d75284e63c440dee181 100644 (file)
@@ -1,7 +1,7 @@
 !Program to test NEAREST intrinsic function.
 
 program test_nearest
-  real s, r, x, y, inf, max, min
+  real s, r, x, y, inf, max
   integer i, infi, maxi
   equivalence (s,i)
   equivalence (inf,infi)
@@ -25,19 +25,26 @@ program test_nearest
   y = nearest(s, -r)
   if (.not. (x .gt. s .and. y .lt. s )) call abort()
 
+! ??? This is pretty sketchy, but passes on most targets.
   infi = z'7f800000'
   maxi = z'7f7fffff'
-  min = tiny(1.0)
 
   call test_up(max, inf)
   call test_up(-inf, -max)
-  call test_up(0, min)
-  call test_up(-min, 0)
-
   call test_down(inf, max)
   call test_down(-max, -inf)
-  call test_down(0, -min)
-  call test_down(min, 0)
+
+! ??? Here we require the F2003 IEEE_ARITHMETIC module to
+! determine if denormals are supported.  If they are, then
+! nearest(0,1) is the minimum denormal.  If they are not,
+! then it's the minimum normalized number, TINY.  This fails
+! much more often than the infinity test above, so it's
+! disabled for now.
+
+! call test_up(0, min)
+! call test_up(-min, 0)
+! call test_down(0, -min)
+! call test_down(min, 0)
 end
 
 subroutine test_up(s, e)