[gfortran] Patch for PR 14836-INQUIRE specifier NEXTREC not correct for direct access files-
Bud Davis
bdavis9659@comcast.net
Sat Apr 3 17:34:00 GMT 2004
Also fixes NIST test FM917.FOR.
No new regressions, i686/gnu/linux
--bud davis
! pr14836
OPEN(UNIT=9, ACCESS='DIRECT', RECL=80, FORM='UNFORMATTED')
INQUIRE(UNIT=9,NEXTREC=NREC)
WRITE(UNIT=9,REC=5) 1
INQUIRE(UNIT=9,NEXTREC=NREC)
PRINT*,NREC
IF (NREC.NE.6) CALL ABORT
READ(UNIT=9,REC=1) MVI
INQUIRE(UNIT=9,NEXTREC=NREC)
IF (NREC.NE.2) CALL ABORT
PRINT*,NREC
END
2004-04-02 Bud Davis <bdavis9659@comcast.net>
PR 14836
io/transfer.c (next_record): Update last_record for DIRECT.
*** gcc/libgfortran/io/transfer.c 1 Apr 2004 01:13:32 -0000 1.1.2.10
--- gcc/libgfortran/io/transfer.c 3 Apr 2004 16:02:23 -0000
*************** next_record (int done)
*** 1295,1301 ****
next_record_w (done);
current_unit->current_record = 0;
! current_unit->last_record++;
if (!done)
pre_position ();
--- 1295,1304 ----
next_record_w (done);
current_unit->current_record = 0;
! if (current_unit->flags.access == ACCESS_DIRECT)
! current_unit->last_record = ioparm.rec;
! else
! current_unit->last_record++;
if (!done)
pre_position ();
More information about the Fortran
mailing list