This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC 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]

[Bug fortran/49296] New: [4.6/4.7 Regression] Wrong I/O END OF FILE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49296

           Summary: [4.6/4.7 Regression] Wrong I/O END OF FILE
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: burnus@gcc.gnu.org
                CC: jvdelisle@gcc.gnu.org


Reported by Reinhold Bader (LRZ). The following program prints with gfortran
4.5 (and ifort 11, NAG 5.1, g95, pathf95):
 OK

With gfortran 4.6/4.7, it prints:

At line 11 of file read_listdir_01_pos.f90 (unit = 20, file = 'read.dat')
Fortran runtime error: End of file


--------- C part of the test program -----------

#include <stdio.h>

void genfil() {
    FILE *fp;

    fp = fopen("read.dat", "w+");
    fprintf(fp, "abcd efgh");
    fclose(fp);
}


--------- Fortran part of the test program -----------

program read_listdir_01_pos
  implicit none
  integer, parameter :: strmx = 255
  character(len=strmx) :: s1, s2
  interface
     subroutine genfil() bind(c)
     end subroutine genfil
  end interface
  call genfil()
  open(unit=20, file='read.dat', form='FORMATTED', action='READ', status='OLD')
  read(20, fmt=*) s1, s2
  if (trim(s1) == "abcd" .and. trim(s2) == "efgh") then
     write(*, *) 'OK'
  else
     write(*, *) 'FAIL'
  end if
  close(20)
end program read_listdir_01_pos


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