This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] fseek, an alternative implementation (PR22359)


Daniel Franke wrote:
While working on the docs last week, I learned, that the FSEEK intrinsic is not implemented yet.

The FSEEK implementation of g77 takes a statement label to jump to, if an error occurs. Since there is no other intrinsic that takes a statement label, considerable effort would be necessary to implement the framework needed. As demand is low (one PR, no dupes, no usage of FSEEK shown by google-code search), it might be worthwile to implement the FSEEK intrinsic for completeness and replace the statement label by a status flag:

  g77:        CALL FSEEK(unit, offset, whence, *100)
  gfortran:   CALL FSEEK(unit, offset, whence, status)
              IF (status /= 0) goto 100

This is not 100% compability, but reasonable close.

Please find a preliminary patch that implements FSEEK using a status flag attached. Of course, this implementation (still) has the same problems with casting/assigning of the status flag as the other intrinsics.

I don't like the idea of introducing new extensions. If we do this, we can't ever implement a g77 compatible solution without going to extra lengths, such as command line flags. I'd rather we keep waiting until someone needs this badly enough that they implement it in a way compatible with g77.


Cheers,
- Tobi


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]