From 906d8c784a5e3e9819238cd3f6e253f6f13f8657 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Fri, 15 Sep 2006 16:07:53 +0000 Subject: [PATCH] re PR libfortran/29099 (secnds intrinsic gives wrong result) 2006-09-15 Jerry DeLisle PR libgfortran/29099 * gfortran.dg/secnds-1.f: New test. From-SVN: r116976 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/secnds-1.f | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/secnds-1.f diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cc431da2d7e..0e52fad14c5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-09-15 Jerry DeLisle + + PR libgfortran/29099 + * gfortran.dg/secnds-1.f: New test. + 2006-09-15 Jerry DeLisle PR libgfortran/29053 diff --git a/gcc/testsuite/gfortran.dg/secnds-1.f b/gcc/testsuite/gfortran.dg/secnds-1.f new file mode 100644 index 00000000000..7eabb64335a --- /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 +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 -- 2.30.2