re PR libfortran/92100 (Formatted stream IO irreproducible read with binary data...
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Mon, 25 Nov 2019 02:24:55 +0000 (02:24 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Mon, 25 Nov 2019 02:24:55 +0000 (02:24 +0000)
2019-11-24  Jerry DeLisle  <jvdelisle@gcc.ngu.org>

PR fortran/92100
gfortran.dg/streamio_18.f90: New test.

From-SVN: r278664

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

index 823ceca..ca1527e 100644 (file)
@@ -1,3 +1,8 @@
+2019-11-24  Jerry DeLisle  <jvdelisle@gcc.ngu.org>
+
+       PR fortran/92100
+       gfortran.dg/streamio_18.f90: New test.
+
 2019-11-24  Bernd Schmidt  <bernds_cb1@t-online.de>
 
        * config/i386/i386.c (ix86_rtx_costs): Handle care of a PLUS in a
diff --git a/gcc/testsuite/gfortran.dg/streamio_18.f90 b/gcc/testsuite/gfortran.dg/streamio_18.f90
new file mode 100644 (file)
index 0000000..ee36238
--- /dev/null
@@ -0,0 +1,23 @@
+! { dg-do run }
+! PR91200
+program foo
+  implicit none
+  integer fd
+  open(newunit=fd, file='test.dat', access='stream', form='formatted')
+  write(fd,'(A)') '$MeshFormat'
+  write(fd,'(A)') 'aabbccdd'
+  close(fd)
+  call readfile  ! Read test.dat
+contains
+  subroutine readfile
+     character(len=20) buf1, buf2
+     integer fd, m, n
+     open(newunit=fd, file='test.dat', access='stream', form='formatted')
+     inquire(fd, pos=m)
+     if (m /= 1) stop 'm /= 1'
+     read(fd, *) buf1
+     read(fd, *, pos=m) buf2        ! Reread by using pos=1
+     close(fd, status='delete')
+     if (buf1 /= buf2) stop 'wrong'
+  end subroutine readfile
+end program