diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/write_rewind_2.f')
-rw-r--r-- | gcc/testsuite/gfortran.dg/write_rewind_2.f | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/write_rewind_2.f b/gcc/testsuite/gfortran.dg/write_rewind_2.f new file mode 100644 index 000000000..501995c6e --- /dev/null +++ b/gcc/testsuite/gfortran.dg/write_rewind_2.f @@ -0,0 +1,44 @@ +! { dg-do run } +! PR 26499 Test write with rewind sequences to make sure buffering and +! end-of-file conditions are handled correctly. Derived from test case by Dale +! Ranta. Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>. + program test + dimension idata(1011) + idata = -42 + open(unit=11,form='unformatted') + idata(1) = -705 + idata( 1011) = -706 + write(11)idata + idata(1) = -706 + idata( 1011) = -707 + write(11)idata + idata(1) = -707 + idata( 1011) = -708 + write(11)idata + read(11,end= 1000 )idata + call abort() + 1000 continue + rewind 11 + read(11,end= 1001 )idata + if(idata(1).ne. -705.or.idata( 1011).ne. -706)call abort() + 1001 continue + close(11,status='keep') + open(unit=11,form='unformatted') + rewind 11 + read(11)idata + if(idata(1).ne.-705)then + call abort() + endif + read(11)idata + if(idata(1).ne.-706)then + call abort() + endif + read(11)idata + if(idata(1).ne.-707)then + call abort() + endif + close(11,status='delete') + stop + end + + |