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:
parent
ecc9e67eef
commit
f19c10ceb6
@ -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
|
||||
|
27
gcc/testsuite/gfortran.dg/read_eof_1.f90
Normal file
27
gcc/testsuite/gfortran.dg/read_eof_1.f90
Normal 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
|
||||
|
21
gcc/testsuite/gfortran.dg/read_eof_2.f90
Normal file
21
gcc/testsuite/gfortran.dg/read_eof_2.f90
Normal 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
|
31
gcc/testsuite/gfortran.dg/read_eof_3.f90
Normal file
31
gcc/testsuite/gfortran.dg/read_eof_3.f90
Normal 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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user