1! { dg-do run }
2! { dg-options "-std=legacy" }
3!
4! pr 16597
5! libgfortran
6! reading a direct access record after it was written did
7! not always return the correct data.
8
9      program gfbug4
10      implicit none
11
12      integer      strlen
13      parameter    (strlen = 4)
14
15      integer      iunit
16      character    string *4
17
18      iunit = 99
19      open (UNIT=iunit,FORM='unformatted',ACCESS='direct',RECL=strlen)
20      write (iunit, rec=1) 'ABCD'
21      read (iunit, rec=1) string
22      close (iunit, status = 'delete')
23      if (string.ne.'ABCD') call abort
24
25      open (UNIT=iunit,FORM='unformatted',ACCESS='direct',STATUS='scratch',RECL=strlen)
26      write (iunit, rec=1) 'ABCD'
27      read (iunit, rec=1) string
28      close (iunit)
29      if (string.ne.'ABCD') call abort
30      end
31