From bb27328b679b26765e73e4d797e6e3eb4d63b5ee Mon Sep 17 00:00:00 2001 From: jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Wed, 25 Jan 2006 01:29:14 +0000 Subject: [PATCH] 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110201 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 7 ++++++ gcc/testsuite/gfortran.dg/read_eof_1.f90 | 27 +++++++++++++++++++++ gcc/testsuite/gfortran.dg/read_eof_2.f90 | 21 ++++++++++++++++ gcc/testsuite/gfortran.dg/read_eof_3.f90 | 31 ++++++++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/read_eof_1.f90 create mode 100644 gcc/testsuite/gfortran.dg/read_eof_2.f90 create mode 100644 gcc/testsuite/gfortran.dg/read_eof_3.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b44c815dcf75..f437418d335f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 diff --git a/gcc/testsuite/gfortran.dg/read_eof_1.f90 b/gcc/testsuite/gfortran.dg/read_eof_1.f90 new file mode 100644 index 000000000000..b5c49016a4aa --- /dev/null +++ b/gcc/testsuite/gfortran.dg/read_eof_1.f90 @@ -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 + diff --git a/gcc/testsuite/gfortran.dg/read_eof_2.f90 b/gcc/testsuite/gfortran.dg/read_eof_2.f90 new file mode 100644 index 000000000000..9017548d463d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/read_eof_2.f90 @@ -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 diff --git a/gcc/testsuite/gfortran.dg/read_eof_3.f90 b/gcc/testsuite/gfortran.dg/read_eof_3.f90 new file mode 100644 index 000000000000..5cca802c2a66 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/read_eof_3.f90 @@ -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 + + -- GitLab