re PR fortran/45308 ([F2003] DATE_AND_TIME does _not_ blank-pad strings)
PR fortran/45308 * intrinsics/date_and_time.c (date_and_time): Pass __{zone,time,date}_len instead of {ZONE,TIME,DATE}_LEN as second argument to fstrcpy. Drop asserts. Adjust comment to the F2003 wording from the F95 wording. * gfortran.dg/pr45308.f03: New test. From-SVN: r163312
This commit is contained in:
parent
35d3d688fc
commit
47b914698d
@ -1,3 +1,8 @@
|
|||||||
|
2010-08-17 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR fortran/45308
|
||||||
|
* gfortran.dg/pr45308.f03: New test.
|
||||||
|
|
||||||
2010-08-17 Uros Bizjak <ubizjak@gmail.com>
|
2010-08-17 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
PR target/45296
|
PR target/45296
|
||||||
|
9
gcc/testsuite/gfortran.dg/pr45308.f03
Normal file
9
gcc/testsuite/gfortran.dg/pr45308.f03
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
! PR fortran/45308
|
||||||
|
! { dg-do run }
|
||||||
|
character(len=36) :: date, time
|
||||||
|
date = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||||
|
time = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||||
|
call date_and_time (date, time)
|
||||||
|
if (index (date, 'a') /= 0 .or. index (time, 'a') /= 0) &
|
||||||
|
call abort
|
||||||
|
end
|
@ -1,3 +1,10 @@
|
|||||||
|
2010-08-17 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR fortran/45308
|
||||||
|
* intrinsics/date_and_time.c (date_and_time): Pass __{zone,time,date}_len
|
||||||
|
instead of {ZONE,TIME,DATE}_LEN as second argument to fstrcpy. Drop
|
||||||
|
asserts. Adjust comment to the F2003 wording from the F95 wording.
|
||||||
|
|
||||||
2010-08-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
2010-08-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
PR libfortran/44931
|
PR libfortran/44931
|
||||||
|
@ -93,29 +93,25 @@ gmtime_r (const time_t * timep, struct tm * result)
|
|||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
|
|
||||||
DATE (optional) shall be scalar and of type default character, and
|
DATE (optional) shall be scalar and of type default character.
|
||||||
shall be of length at least 8 in order to contain the complete
|
It is an INTENT(OUT) argument. It is assigned a value of the
|
||||||
value. It is an INTENT(OUT) argument. Its leftmost 8 characters
|
form CCYYMMDD, where CC is the century, YY the year within the
|
||||||
are assigned a value of the form CCYYMMDD, where CC is the century,
|
century, MM the month within the year, and DD the day within the
|
||||||
YY the year within the century, MM the month within the year, and
|
month. If there is no date available, they are assigned blanks.
|
||||||
DD the day within the month. If there is no date available, they
|
|
||||||
are assigned blanks.
|
|
||||||
|
|
||||||
TIME (optional) shall be scalar and of type default character, and
|
TIME (optional) shall be scalar and of type default character.
|
||||||
shall be of length at least 10 in order to contain the complete
|
It is an INTENT(OUT) argument. It is assigned a value of the
|
||||||
value. It is an INTENT(OUT) argument. Its leftmost 10 characters
|
form hhmmss.sss, where hh is the hour of the day, mm is the
|
||||||
are assigned a value of the form hhmmss.sss, where hh is the hour
|
minutes of the hour, and ss.sss is the seconds and milliseconds
|
||||||
of the day, mm is the minutes of the hour, and ss.sss is the
|
of the minute. If there is no clock available, they are assigned
|
||||||
seconds and milliseconds of the minute. If there is no clock
|
blanks.
|
||||||
available, they are assigned blanks.
|
|
||||||
|
|
||||||
ZONE (optional) shall be scalar and of type default character, and
|
ZONE (optional) shall be scalar and of type default character.
|
||||||
shall be of length at least 5 in order to contain the complete
|
It is an INTENT(OUT) argument. It is assigned a value of the
|
||||||
value. It is an INTENT(OUT) argument. Its leftmost 5 characters
|
form [+-]hhmm, where hh and mm are the time difference with
|
||||||
are assigned a value of the form [+-]hhmm, where hh and mm are the
|
respect to Coordinated Universal Time (UTC) in hours and parts
|
||||||
time difference with respect to Coordinated Universal Time (UTC) in
|
of an hour expressed in minutes, respectively. If there is no
|
||||||
hours and parts of an hour expressed in minutes, respectively. If
|
clock available, they are assigned blanks.
|
||||||
there is no clock available, they are assigned blanks.
|
|
||||||
|
|
||||||
VALUES (optional) shall be of type default integer and of rank
|
VALUES (optional) shall be of type default integer and of rank
|
||||||
one. It is an INTENT(OUT) argument. Its size shall be at least
|
one. It is an INTENT(OUT) argument. Its size shall be at least
|
||||||
@ -311,22 +307,13 @@ date_and_time (char *__date, char *__time, char *__zone,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (__zone)
|
if (__zone)
|
||||||
{
|
fstrcpy (__zone, __zone_len, zone, ZONE_LEN);
|
||||||
assert (__zone_len >= ZONE_LEN);
|
|
||||||
fstrcpy (__zone, ZONE_LEN, zone, ZONE_LEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (__time)
|
if (__time)
|
||||||
{
|
fstrcpy (__time, __time_len, timec, TIME_LEN);
|
||||||
assert (__time_len >= TIME_LEN);
|
|
||||||
fstrcpy (__time, TIME_LEN, timec, TIME_LEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (__date)
|
if (__date)
|
||||||
{
|
fstrcpy (__date, __date_len, date, DATE_LEN);
|
||||||
assert (__date_len >= DATE_LEN);
|
|
||||||
fstrcpy (__date, DATE_LEN, date, DATE_LEN);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user