OSDN Git Service

2007-09-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Sep 2007 20:23:40 +0000 (20:23 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Sep 2007 20:23:40 +0000 (20:23 +0000)
PR libfortran/33307
* gfortran.dg/backspace_10.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128254 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/backspace_10.f90 [new file with mode: 0644]

index f704b27..9ca621c 100644 (file)
@@ -1,3 +1,8 @@
+2007-09-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/33307
+       * gfortran.dg/backspace_10.f90: New test.
+
 2007-09-07  Richard Guenther  <rguenther@suse.de>
 
        Reapply
diff --git a/gcc/testsuite/gfortran.dg/backspace_10.f90 b/gcc/testsuite/gfortran.dg/backspace_10.f90
new file mode 100644 (file)
index 0000000..574d464
--- /dev/null
@@ -0,0 +1,37 @@
+! { dg-do run }
+! PR33307 I/O read/positioning problem - in BACKSPACE
+! Test case devloped from test in PR by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+program gfcbug69b
+  ! Modified example program
+  implicit none
+  integer, parameter :: iunit = 63
+  integer            :: istat, k, ios
+  character(len=20) :: line, message
+
+  open (iunit)
+  write (iunit, '(a)') "! ***Remove this line***"
+  write (iunit, '(a)') "&FOO        file='foo' /"
+  write (iunit, '(a)', advance="no") "&BAR        file='bar' /"
+  close (iunit)
+! Note: Failure occurred only when ACTION="read" was specified
+  open (iunit, action="read", status="old")
+  
+  read (iunit,'(a)',iostat=ios) line
+  if (ios /= 0) call abort
+  read (iunit,'(a)',iostat=ios) line
+  if (ios /= 0) call abort
+  read (iunit,'(a)',iostat=ios) line
+  if (ios /= 0) call abort
+  read (iunit,'(a)',iostat=ios) line
+  if (ios /= 0) backspace (iunit)
+  rewind (iunit)
+  read (iunit,'(a)',iostat=ios) line
+  if (ios /= 0) call abort
+  read (iunit,'(a)',iostat=ios) line
+  if (ios /= 0) call abort
+  read (iunit,'(a)',iostat=ios) line
+  if (ios /= 0) call abort
+  read (iunit,'(a)',iostat=ios) line
+  if (ios /= -1) call abort
+  close (iunit, status="delete")
+end program gfcbug69b