re PR libfortran/26464 (Runtime I/O error/invald argument on READ)

2006-02-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26464
	* gfortran.dg/backspace_5.f: New test.
	* gfortran.dg/backspace_6.f: New test.

From-SVN: r111507
This commit is contained in:
Jerry DeLisle 2006-02-28 02:11:47 +00:00
parent 9985dd8aaf
commit 167f0c7e07
3 changed files with 73 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2006-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/26464
* gfortran.dg/backspace_5.f: New test.
* gfortran.dg/backspace_6.f: New test.
2006-02-26 Roger Sayle <roger@eyesopen.com>
* gcc.dg/fold-eqandnot-1.c: New test case.

View file

@ -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 <jvdelisle@gcc.gnu.org>
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

View file

@ -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 <jvdelisle@gcc.gnu.org>
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