re PR libfortran/25835 (Segfault or Bad Address error on unformatted sequential READ)

2006-01-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/25835
	* gfortran.dg/read_eof_1.f90: Rename from read_eof_1.f90.
	* gfortran.dg/read_eof_2.f90: New test.
	* gfortran.dg/read_eof_3.f90: New test.

From-SVN: r110201
This commit is contained in:
Jerry DeLisle 2006-01-25 01:29:14 +00:00
parent ecc9e67eef
commit f19c10ceb6
4 changed files with 86 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2006-01-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/25835
* gfortran.dg/read_eof_1.f90: Rename from read_eof_1.f90.
* gfortran.dg/read_eof_2.f90: New test.
* gfortran.dg/read_eof_3.f90: New test.
2006-01-24 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25860

View File

@ -0,0 +1,27 @@
! { dg-do run }
! PR25697 Check that reading from a file that is at end-of-file does not
! segfault or give error. Test case derived from example in PR from Dale Ranta.
! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
integer data(9)
do i = 1,9
data(i)=-3
enddo
open(unit=11,status='scratch',form='unformatted')
write(11)data
read(11,end= 1000 )data
call abort()
1000 continue
backspace 11
backspace 11
write(11)data
rewind 11
data = 0
read(11,end= 1001 )data
1001 continue
read(11,end= 1002 )data
call abort
1002 continue
if (.not. all(data == -3)) call abort()
close(11)
end

View File

@ -0,0 +1,21 @@
! { dg-do run }
! PR25835 Check that reading from a file that is at end-of-file does not
! segfault or give error. Test case derived from example in PR from Dale Ranta.
! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
integer data(2045) ! Exceed internal buffer size
data=-1
open(unit=11,status='scratch', form='unformatted')
write(11)data
read(11,end= 1000 )data
call abort()
1000 continue
backspace 11
backspace 11
data = 0
read(11)data
if (.not. all(data == -1)) call abort()
read(11,end= 1002 )data
call abort()
1002 continue
close(11)
end

View File

@ -0,0 +1,31 @@
! { dg-do run }
! PR25835 Check that reading from a file that is at end-of-file does not
! segfault or give error. Test case derived from example in PR from Dale Ranta.
! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
integer data(5000)
data=-256
open(unit=11,status='scratch', form='unformatted')
write(11)data
write(11)data
read(11,end= 1000 )data
call abort()
1000 continue
backspace 11
rewind 11
write(11)data
read(11,end= 1001 )data
call abort()
1001 continue
data = 0
backspace 11
rewind 11
read(11,end= 1002 )data
if (.not. all(data == -256)) call abort()
1002 continue
read(11,end= 1003 )data
call abort()
1003 continue
close(11)
end