From 13dde709ce3bd835338736299be9d8ded9e4b2b2 Mon Sep 17 00:00:00 2001 From: jvdelisle Date: Sat, 19 Sep 2009 04:45:00 +0000 Subject: [PATCH] 2009-09-18 Jerry DeLisle PR libgfortran/41328 * gfortran.dg/cr_lf.f90: Modify test to include check that no EOR with EOF works. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151878 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gfortran.dg/cr_lf.f90 | 36 ++++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3604d5b66ae..ed2939911a6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2009-09-18 Jerry DeLisle + + PR libgfortran/41328 + * gfortran.dg/cr_lf.f90: Modify test to include check that no EOR with + EOF works. + 2009-09-18 Jason Merrill * g++.dg/cpp0x/nolinkage1{.C,.h,a.cc}: New. diff --git a/gcc/testsuite/gfortran.dg/cr_lf.f90 b/gcc/testsuite/gfortran.dg/cr_lf.f90 index 855e7036095..eb5500e01d3 100644 --- a/gcc/testsuite/gfortran.dg/cr_lf.f90 +++ b/gcc/testsuite/gfortran.dg/cr_lf.f90 @@ -4,11 +4,17 @@ ! Test case prepared by Jerry DeLisle program main implicit none - integer :: iostat, n_chars_read + integer :: iostat, n_chars_read, k character(len=1) :: buffer(64) = "" - open( unit=10, form="formatted", access="stream", status="scratch") - write(10, fmt="(a)", advance="no") "a\rb\rc\r" - rewind(10) + character (len=80) :: u + + ! Set up the test file with normal file end. + open(unit=10, file="crlftest", form="unformatted", access="stream",& + & status="replace") + write(10) "a\rb\rc\r" ! CR at the end of each record. + close(10, status="keep") + + open(unit=10, file="crlftest", form="formatted", status="old") read( unit=10, fmt='(64A)', advance='NO', iostat=iostat, & size=n_chars_read ) buffer @@ -33,4 +39,26 @@ program main if (n_chars_read.ne.0) call abort if (any(buffer(1:n_chars_read).ne."a")) call abort if (.not.is_iostat_end(iostat)) call abort + close(10, status="delete") + + ! Set up the test file with normal file end. + open(unit=10, file="crlftest", form="unformatted", access="stream",& + & status="replace") + write(10) "a\rb\rc\rno end of line marker" ! Note, no CR at end of file. + close(10, status="keep") + + open(unit=10, file="crlftest", status='old') + + do k = 1, 10 + read(10,'(a80)',end=101,err=100) u + !print *,k,' : ',u(1:len_trim(u)) + enddo + +100 continue + close(10, status="delete") + call abort + +101 continue + close(10, status="delete") + if (u(1:len_trim(u)).ne."no end of line marker") call abort end program main -- 2.11.0