! { dg-do run } ! PR107031 Check that endfile truncates at end of record 5. program test_truncate integer :: num_rec, tmp, i, nr, j open(10, file="in.dat", action='readwrite') do i=1,10 write(10, *) i end do rewind (10) num_rec = 5 i = 1 ioerr = 0 do while (i <= num_rec .and. ioerr == 0) read(10, *, iostat=ioerr) tmp i = i + 1 enddo endfile(10) rewind (10) i = 0 ioerr = 0 do while (i <= num_rec + 1 .and. ioerr == 0) read(10, *, iostat=ioerr) j i = i + 1 end do close(10, status='delete') if (i - 1 /= 5) stop 1 end program test_truncate