[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