diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2006-09-15 16:07:53 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2006-09-15 16:07:53 +0000 |
commit | 906d8c784a5e3e9819238cd3f6e253f6f13f8657 (patch) | |
tree | 57ace5795f4a819b767e147629a7b057cf05075d | |
parent | f49d5a7eca3baec3ba954934d55eaa24d74e8699 (diff) | |
download | gcc-906d8c784a5e3e9819238cd3f6e253f6f13f8657.zip gcc-906d8c784a5e3e9819238cd3f6e253f6f13f8657.tar.gz gcc-906d8c784a5e3e9819238cd3f6e253f6f13f8657.tar.bz2 |
re PR libfortran/29099 (secnds intrinsic gives wrong result)
2006-09-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/29099
* gfortran.dg/secnds-1.f: New test.
From-SVN: r116976
-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 |