diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 433172ef080..c4dd17c73c7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2006-02-09 Brooks Moses + + * gfortran.dg/secnds.f: Replace time tolerance with a + before-and-after bracket. + * gfortran.dg/secnds-1.f: Likewise. + 2007-02-09 Tobias Burnus PR fortran/30512 diff --git a/gcc/testsuite/gfortran.dg/secnds-1.f b/gcc/testsuite/gfortran.dg/secnds-1.f index 7eabb64335a..fafe645d794 100644 --- a/gcc/testsuite/gfortran.dg/secnds-1.f +++ b/gcc/testsuite/gfortran.dg/secnds-1.f @@ -1,24 +1,23 @@ C { dg-do run } +C { dg-options "-ffloat-store" } C Tests fix for PR29099 - SECNDS intrinsic wrong result with no delay. -C Note1: The test uses +/-20ms accuracy in the check that -C date_and_time and secnds give the same values. C C Contributed by Paul Thomas C character*20 dum1, dum2, dum3 - real t1, t2 + real t1, t1a, t2, t2a real dat1, dat2 - real dt integer i, j, values(8) - dt = 40e-3 t1 = secnds (0.0) call date_and_time (dum1, dum2, dum3, values) + t1a = secnds (0.0) dat1 = 0.001*real (values(8)) + real (values(7)) + & 60.0*real (values(6)) + 3600.0* real (values(5)) - if (int ((dat1 - t1 + dt * 0.5) / dt) .ne. 0) call abort () + if (((dat1 - t1) < 0.) .or. ((dat1 - t1) > (t1a - t1))) call abort () + t2a = secnds (t1a) call date_and_time (dum1, dum2, dum3, values) + t2 = secnds (t1) dat2 = 0.001*real (values(8)) + real (values(7)) + & 60.0*real (values(6)) + 3600.0* real (values(5)) - t2 = secnds (t1) - if (int ((dat1-dat2 + t2 + dt * 0.5) / dt) .ne. 0.0) call abort () + if (((dat2 - dat1) < t2a) .or. ((dat2 - dat1) > t2)) call abort () end diff --git a/gcc/testsuite/gfortran.dg/secnds.f b/gcc/testsuite/gfortran.dg/secnds.f index c5d86a21e5b..a67acbb05f6 100644 --- a/gcc/testsuite/gfortran.dg/secnds.f +++ b/gcc/testsuite/gfortran.dg/secnds.f @@ -1,29 +1,27 @@ C { dg-do run } -C { dg-options "-O0" } +C { dg-options "-O0 -ffloat-store" } C Tests fix for PR14994 - SECNDS intrinsic not supported. -C Note1: The test uses +/-20ms accuracy in the check that -C date_and_time and secnds give the same values. C C Contributed by Paul Thomas C character*20 dum1, dum2, dum3 - real t1, t2 + real t1, t1a, t2, t2a real dat1, dat2 - real dt integer i, j, values(8) - dt = 40e-3 t1 = secnds (0.0) call date_and_time (dum1, dum2, dum3, values) + t1a = secnds (0.0) dat1 = 0.001*real (values(8)) + real (values(7)) + & 60.0*real (values(6)) + 3600.0* real (values(5)) - if (int ((dat1 - t1 + dt * 0.5) / dt) .ne. 0) call abort () + if (((dat1 - t1) < 0.) .or. ((dat1 - t1) > (t1a - t1))) call abort () do j=1,10000 do i=1,10000 end do end do + t2a = secnds (t1a) call date_and_time (dum1, dum2, dum3, values) + t2 = secnds (t1) dat2 = 0.001*real (values(8)) + real (values(7)) + & 60.0*real (values(6)) + 3600.0* real (values(5)) - t2 = secnds (t1) - if (int ((dat1-dat2 + t2 + dt * 0.5) / dt) .ne. 0.0) call abort () + if (((dat2 - dat1) < t2a) .or. ((dat2 - dat1) > t2)) call abort () end