diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2007-04-23 19:43:54 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2007-04-23 19:43:54 +0000 |
commit | e08e57d0c51f46403f3f1aebfa8135c976468aab (patch) | |
tree | a0f753f8651bc3ca395a636bc80a13ee8f1a693c /gcc | |
parent | 10e4d956c1cc45eae31573b566694339f0fa6cbe (diff) | |
download | gcc-e08e57d0c51f46403f3f1aebfa8135c976468aab.zip gcc-e08e57d0c51f46403f3f1aebfa8135c976468aab.tar.gz gcc-e08e57d0c51f46403f3f1aebfa8135c976468aab.tar.bz2 |
re PR fortran/31618 ([4.2, 4.1 only] backspace intrinsic is not working on an unformatted file)
2007-04-23 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/31618
* io/transfer.c (read_block_direct): Instead of calling us_read,
set dtp->u.p.current_unit->current_record = 0 so that pre_position
will read the record marker.
(data_transfer_init): For different error conditions, call
generate_error, then return.
2007-04-23 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/31618
* gfortran.dg/backspace_8.f: New test case.
From-SVN: r124079
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/backspace_8.f | 18 |
2 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 22b6f46b..1358818 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-04-23 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/31618 + * gfortran.dg/backspace_8.f: New test case. + 2007-04-23 Paul Thomas <pault@gcc.gnu.org> PR fortran/31630 diff --git a/gcc/testsuite/gfortran.dg/backspace_8.f b/gcc/testsuite/gfortran.dg/backspace_8.f new file mode 100644 index 0000000..8c8c96a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/backspace_8.f @@ -0,0 +1,18 @@ +C { dg-do run } +C PR libfortran/31618 - backspace after an error didn't work. + program main + character*78 msg + open (21, file="backspace_7.dat", form="unformatted") + write (21) 42, 43 + write (21) 4711, 4712 + write (21) -1, -4 + rewind (21) + read (21) i,j + read (21,err=100,end=100) i,j,k + call abort + 100 continue + backspace 21 + read (21) i,j + if (i .ne. 4711 .or. j .ne. 4712) call abort + close (21,status="delete") + end |