Commit 203f344c by Bud Davis Committed by Bud Davis

re PR libfortran/18364 (endfile does not truncate file)


2004-11-27  Bud Davis  <bdavis9659@comcast.net>

        PR fortran/18364
        * gfortran.dg/endfile.f90: New test.
        *  io/endfile.c (st_endfile): flush the stream before truncating.

From-SVN: r91400
parent 22e54023
2004-11-27 Bud Davis <bdavis9659@comcast.net>
PR fortran/18364
* gfortran.dg/endfile.f90: New test.
2004-11-27 Falk Hueffner <falk@debian.org> 2004-11-27 Falk Hueffner <falk@debian.org>
* gcc.dg/loop-6.c: New test. * gcc.dg/loop-6.c: New test.
......
! { dg-do run }
! pr18364 endfile does not truncate file.
! write out 20 records
! rewind
! read 10 records
! endfile
! close file
! open file
! detect file has only 10 records
implicit none
integer i,j
open(unit=10,file='test.dat',access='sequential',status='replace')
do i=1, 20
write (10,'(I4)') i
end do
rewind(10)
do i=1,10
read (10,'(I4)') j
end do
endfile(10)
close(10)
open(unit=10,file='test.dat',access='sequential',status='old')
do i=1,20
read (10,'(I4)',end=99) j
end do
! should never get here
call abort
99 continue ! end of file
if (j.ne.10) call abort
close(10,status='delete')
end
2004-11-27 Bud Davis <bdavis9659@comcast.net>
PR fortran/18364
* io/endfile.c (st_endfile): flush the stream before truncating.
2004-11-25 Kelley Cook <kcook@gcc.gnu.org> 2004-11-25 Kelley Cook <kcook@gcc.gnu.org>
* configure: Regenerate for libtool reversion. * configure: Regenerate for libtool reversion.
......
...@@ -38,6 +38,7 @@ st_endfile (void) ...@@ -38,6 +38,7 @@ st_endfile (void)
if (u->current_record) if (u->current_record)
next_record (1); next_record (1);
flush(u->s);
struncate (u->s); struncate (u->s);
u->endfile = AFTER_ENDFILE; u->endfile = AFTER_ENDFILE;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment