diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-04-01 15:29:05 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-04-01 15:29:05 +0000 |
commit | 201c811d49e228c5e88f1e794f05d145b50e9128 (patch) | |
tree | ee54c9b133fdd980d030a04d460f220fbd40a593 /gcc | |
parent | 138469296cf44b816bfc3dac8693b891151fe166 (diff) | |
download | gcc-201c811d49e228c5e88f1e794f05d145b50e9128.zip gcc-201c811d49e228c5e88f1e794f05d145b50e9128.tar.gz gcc-201c811d49e228c5e88f1e794f05d145b50e9128.tar.bz2 |
re PR fortran/31366 ([4.2 only] Last record truncated for read after short write, direct access file)
2007-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/31366
* gfortran.dg/direct_io_6.f90: New test.
2007-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/31207
* gfortran.dg/advance_5.f90: New test.
* gfortran.dg/advance_6.f90: New test.
From-SVN: r123402
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/advance_4.f90 | 10 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/advance_5.f90 | 17 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/direct_io_6.f90 | 16 |
4 files changed, 54 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b524f7b..c04ae81 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2007-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libgfortran/31366 + * gfortran.dg/direct_io_6.f90: New test. + +2007-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libgfortran/31207 + * gfortran.dg/advance_5.f90: New test. + * gfortran.dg/advance_6.f90: New test. + 2007-04-01 Danny Smith <dannysmith@users.sourceforge.net> * g++.dg/ext/dllimport6.C: Remove extra ';'. diff --git a/gcc/testsuite/gfortran.dg/advance_4.f90 b/gcc/testsuite/gfortran.dg/advance_4.f90 new file mode 100644 index 0000000..ab22311 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/advance_4.f90 @@ -0,0 +1,10 @@ +! { dg-do run } +! PR31207 Last record truncated for read after short write +program main + character(10) :: answer + write (12,'(A,T2,A)',advance="no") 'XXXXXX','ABCD' + close (12) + read (12, '(6A)') answer + close (12, status="delete") + if (answer /= "XABCDX") call abort() +end program main
\ No newline at end of file diff --git a/gcc/testsuite/gfortran.dg/advance_5.f90 b/gcc/testsuite/gfortran.dg/advance_5.f90 new file mode 100644 index 0000000..3a48e53 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/advance_5.f90 @@ -0,0 +1,17 @@ +! { dg-do run } +! PR31207 Last record truncated for read after short write. +character(len=20) :: b +! write something no advance +open(10,file="fort.10",position="rewind") +write(10, '(a,t1,a)',advance='no') 'xxxxxx', 'abc' +close(10) +! append some data +open(10,file="fort.10",position="append") +write(10, '(a)') 'def' +close(10) +! check what is in the first record +open(10,file="fort.10",position="rewind") +read(10,'(a)') b +close(10, status="delete") +if (b.ne."abcxxx") call abort() +end diff --git a/gcc/testsuite/gfortran.dg/direct_io_6.f90 b/gcc/testsuite/gfortran.dg/direct_io_6.f90 new file mode 100644 index 0000000..d090704 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/direct_io_6.f90 @@ -0,0 +1,16 @@ +! { dg-do run } +! pr31366 last record truncated for read after short write, direct access file. +! test case derived from pr, submitted by jerry delisle <jvdelisle@gcc.gnu.org + program test + character(len=8) :: as_written, as_read + character(1) :: byte + as_written = "12345678" + open (76, access="direct", recl=12, status="scratch") + write(76, rec=1) as_written + write(76, rec=2) as_written + read(76, rec=1) as_read, byte, byte, byte, byte + read(76, rec=2, err=3) as_read, byte, byte, byte, byte + stop + 3 call abort() + end program test + |