$ cat partial.f90 program main character(len=1) a(2) open(10, form="unformatted",status="unknown") write (10) 'a' rewind 10 a = 'b' read (10) a print *,a end program main $ gfortran -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../../gcc/trunk/configure --prefix=/home/ig25 --enable-languages=c,fortran Thread model: posix gcc version 4.2.0 20061020 (experimental)
This should generate a runtime error. ifort gets this right: $ ifort partial.f90 $ ./a.out forrtl: severe (67): input statement requires too much data, unit 10, file /home/ig25/Krempel/Transfer/fort.10 Image PC Routine Line Source a.out 08085958 Unknown Unknown Unknown a.out 08085450 Unknown Unknown Unknown a.out 08084A0D Unknown Unknown Unknown a.out 080648C8 Unknown Unknown Unknown a.out 08064D6B Unknown Unknown Unknown a.out 08055937 Unknown Unknown Unknown a.out 080554B1 Unknown Unknown Unknown a.out 0804A239 Unknown Unknown Unknown a.out 0804A13C Unknown Unknown Unknown Unknown A7E40EA8 Unknown Unknown Unknown a.out 08049FF1 Unknown Unknown Unknown -- Summary: partial unformatted reads shouldn't succeed Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tkoenig at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29627