aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2007-11-24 14:18:27 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2007-11-24 14:18:27 +0100
commit54b42fe269b6e554090dbb7ecc25e245d0bd791c (patch)
treef306fae7c915bc2728e0cd3f8e80c26b8103a103
parenteba55d501f7a2e4b95b7fedd3463424e403f2c54 (diff)
downloadgcc-54b42fe269b6e554090dbb7ecc25e245d0bd791c.zip
gcc-54b42fe269b6e554090dbb7ecc25e245d0bd791c.tar.gz
gcc-54b42fe269b6e554090dbb7ecc25e245d0bd791c.tar.bz2
re PR fortran/34192 (NEAREST can return wrong numbers)
2007-11-24 Tobias Burnus <burnus@net-b.de> PR fortran/34192 * gfortran.dg/nearest_2.f90: Add INF/NAN tests. From-SVN: r130396
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/nearest_2.f9019
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d83f28f..c09ab0d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34192
+ * gfortran.dg/nearest_2.f90: Add INF/NAN tests.
+
2007-11-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33541
diff --git a/gcc/testsuite/gfortran.dg/nearest_2.f90 b/gcc/testsuite/gfortran.dg/nearest_2.f90
index 4bdad31..16dfa44 100644
--- a/gcc/testsuite/gfortran.dg/nearest_2.f90
+++ b/gcc/testsuite/gfortran.dg/nearest_2.f90
@@ -1,4 +1,5 @@
! { dg-do run }
+! { dg-options "-fno-range-check" }
!
! PR fortran/34192
!
@@ -76,6 +77,15 @@ program test
/= 42.0) &
call abort()
+ ! INF+ = INF
+ if (nearest(1.0/0.0, 1.0) /= 1.0/0.0) call abort()
+ ! -INF- = -INF
+ if (nearest(-1.0/0.0, -1.0) /= -1.0/0.0) call abort()
+ ! NAN- = NAN
+ if (.not.isnan(nearest(0.0d0/0.0, 1.0))) call abort()
+ ! NAN+ = NAN
+ if (.not.isnan(nearest(0.0d0/0.0, -1.0))) call abort()
+
! Double precision
! 0+ > 0
@@ -144,4 +154,13 @@ program test
if (nearest(nearest(42.0d0, 1.0), -1.0) &
/= 42.0d0) &
call abort()
+
+ ! INF+ = INF
+ if (nearest(1.0d0/0.0d0, 1.0) /= 1.0d0/0.0d0) call abort()
+ ! -INF- = -INF
+ if (nearest(-1.0d0/0.0d0, -1.0) /= -1.0d0/0.0d0) call abort()
+ ! NAN- = NAN
+ if (.not.isnan(nearest(0.0d0/0.0, 1.0))) call abort()
+ ! NAN+ = NAN
+ if (.not.isnan(nearest(0.0d0/0.0, -1.0))) call abort()
end program test