From ee1bc59e9d1b95102fb7092409885b3dcce9ea2a Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Mon, 25 Nov 2019 02:24:55 +0000 Subject: [PATCH] re PR libfortran/92100 (Formatted stream IO irreproducible read with binary data in file) 2019-11-24 Jerry DeLisle PR fortran/92100 gfortran.dg/streamio_18.f90: New test. From-SVN: r278664 --- gcc/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/streamio_18.f90 | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/streamio_18.f90 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 823ceca45d8..ca1527e81ec 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-11-24 Jerry DeLisle + + PR fortran/92100 + gfortran.dg/streamio_18.f90: New test. + 2019-11-24 Bernd Schmidt * 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 index 00000000000..ee36238ecfa --- /dev/null +++ b/gcc/testsuite/gfortran.dg/streamio_18.f90 @@ -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 -- 2.30.2