! { dg-do run }
! pr35699 run-time abort writing zero sized section to direct access file
      program directio
      call       qi0010 (  10,   1,   2,   3,   4,  9,   2)
      end

      subroutine qi0010 (nf10, nf1, nf2, nf3, nf4,nf9, np2)
      character(10) bda(nf10)
      character(10) bda1(nf10), bval

      integer  j_len
      bda1(1) = 'x'
      do i = 2,10
        bda1(i) = 'x'//bda1(i-1)
      enddo
      bda = 'unread'

      inquire(iolength = j_len) bda1(nf1:nf10:nf2), bda1(nf4:nf3),
     $                               bda1(nf2:nf10:nf2)

      open (unit=48,
     $      access='direct',
     $      status='scratch',
     $      recl = j_len,
     $      iostat = istat,
     $      form='unformatted',
     $      action='readwrite')

      write (48,iostat = istat, rec = 3) bda1(nf1:nf10:nf2),
     $                    bda1(nf4:nf3), bda1(nf2:nf10:nf2)
      if ( istat .ne. 0) then
        call abort
      endif
      istat = -314

      read (48,iostat = istat, rec = np2+1) bda(nf1:nf9:nf2),
     $                       bda(nf4:nf3), bda(nf2:nf10:nf2)
      if ( istat .ne. 0) then
        call abort
      endif

      do j1 = 1,10
        bval = bda1(j1)
        if (bda(j1) .ne. bval) call abort
      enddo
      end subroutine
