diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/pr16597.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr16597.f90 | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/pr16597.f90 b/gcc/testsuite/gfortran.dg/pr16597.f90 new file mode 100644 index 000000000..c29147411 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr16597.f90 @@ -0,0 +1,30 @@ +! { dg-do run } +! { dg-options "-std=legacy" } +! +! pr 16597 +! libgfortran +! reading a direct access record after it was written did +! not always return the correct data. + + program gfbug4 + implicit none + + integer strlen + parameter (strlen = 4) + + integer iunit + character string *4 + + iunit = 99 + open (UNIT=iunit,FORM='unformatted',ACCESS='direct',RECL=strlen) + write (iunit, rec=1) 'ABCD' + read (iunit, rec=1) string + close (iunit) + if (string.ne.'ABCD') call abort + + open (UNIT=iunit,FORM='unformatted',ACCESS='direct',STATUS='scratch',RECL=strlen) + write (iunit, rec=1) 'ABCD' + read (iunit, rec=1) string + close (iunit) + if (string.ne.'ABCD') call abort + end |