diff options
author | Bud Davis <bdavis9659@comcast.net> | 2004-11-27 23:35:47 +0000 |
---|---|---|
committer | Bud Davis <bdavis@gcc.gnu.org> | 2004-11-27 23:35:47 +0000 |
commit | 203f344c3dc29789cd6d2f57f34c10b05860c239 (patch) | |
tree | 65d480795eff18a7ac3db7791e5d0314e39c6456 /gcc/testsuite/gfortran.dg/endfile.f90 | |
parent | 22e54023ca7fbcbe877b51687a9a6698640ee011 (diff) | |
download | gcc-203f344c3dc29789cd6d2f57f34c10b05860c239.zip gcc-203f344c3dc29789cd6d2f57f34c10b05860c239.tar.gz gcc-203f344c3dc29789cd6d2f57f34c10b05860c239.tar.bz2 |
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
Diffstat (limited to 'gcc/testsuite/gfortran.dg/endfile.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/endfile.f90 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/endfile.f90 b/gcc/testsuite/gfortran.dg/endfile.f90 new file mode 100644 index 0000000..1eabe9f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/endfile.f90 @@ -0,0 +1,31 @@ +! { 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 |