diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d0178e22f55..5246dd9fbd6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2006-02-27 Jerry DeLisle + + PR libgfortran/26464 + * gfortran.dg/backspace_5.f: New test. + * gfortran.dg/backspace_6.f: New test. + 2006-02-26 Roger Sayle * gcc.dg/fold-eqandnot-1.c: New test case. diff --git a/gcc/testsuite/gfortran.dg/backspace_5.f b/gcc/testsuite/gfortran.dg/backspace_5.f new file mode 100644 index 00000000000..a651a9ed2f0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/backspace_5.f @@ -0,0 +1,34 @@ +!{ dg-do run } +! PR26464 File I/O error related to buffering and BACKSPACE +! Test case derived from case by Dale Ranta. +! Submitted by Jerry DeLisle + program test + integer,parameter :: datasize = 1000 + dimension idata(datasize) + open (11, status="scratch", form="unformatted") + idata(1) = -1 + idata( datasize) = -2 + write(11)idata + idata(1) = -2 + idata( datasize) = -3 + write(11)idata + idata(1) = -3 + idata( datasize) = -4 + write(11)idata + idata(1) = -4 + idata( datasize) = -5 + write(11)idata + read(11,end= 1000 )idata + call abort() + 1000 continue + backspace 11 + backspace 11 + backspace 11 + read(11,end= 1001 )idata + if(idata(1).ne.-3 .or. idata(datasize).ne.-4) call abort() + stop + 1001 continue + call abort() + 1010 stop + end + \ No newline at end of file diff --git a/gcc/testsuite/gfortran.dg/backspace_6.f b/gcc/testsuite/gfortran.dg/backspace_6.f new file mode 100644 index 00000000000..3d9cc3dfd36 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/backspace_6.f @@ -0,0 +1,33 @@ +!{ dg-do run } +! PR26464 File I/O error related to buffering and BACKSPACE +! Test case derived from case by Dale Ranta. +! Submitted by Jerry DeLisle + program test + integer,parameter :: datasize = 5000 + dimension idata(datasize) + open (11, status="scratch", form="unformatted") + idata(1) = -1 + idata(datasize) = -2 + write(11)idata + idata(1) = -2 + idata(datasize) = -3 + write(11)idata + idata(1) = -3 + idata(datasize) = -4 + write(11)idata + backspace 11 + backspace 11 + idata(1) = -2 + idata(datasize) = -3 + write(11)idata + read(11,end= 1003 )idata + call abort() + 1003 continue + backspace 11 + backspace 11 + read(11,end= 1004 )idata + if(idata(1).ne.-2 .or.idata(datasize).ne.-3) call abort() + stop + 1004 continue + end + \ No newline at end of file