$ 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

Reply via email to