diff options
-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 + |