aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2007-04-23 19:43:54 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2007-04-23 19:43:54 +0000
commite08e57d0c51f46403f3f1aebfa8135c976468aab (patch)
treea0f753f8651bc3ca395a636bc80a13ee8f1a693c /gcc
parent10e4d956c1cc45eae31573b566694339f0fa6cbe (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/backspace_8.f18
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