diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/gfortran.dg/secnds-1.f | 24 |
2 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cc431da..0e52fad 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2006-09-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> + PR libgfortran/29099 + * gfortran.dg/secnds-1.f: New test. + +2006-09-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> + PR libgfortran/29053 * gfortran.dg/streamio_9.f90: New test. * gfortran.dg/streamio_10.f90: New test. diff --git a/gcc/testsuite/gfortran.dg/secnds-1.f b/gcc/testsuite/gfortran.dg/secnds-1.f new file mode 100644 index 0000000..7eabb64 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/secnds-1.f @@ -0,0 +1,24 @@ +C { dg-do run } +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 <pault@gcc.gnu.org> +C + character*20 dum1, dum2, dum3 + real t1, t2 + 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) + 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 () + call date_and_time (dum1, dum2, dum3, values) + 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 () + end |
