! { dg-do run }
! { dg-options "-funsigned" }
! Test I/O with Z, O and B descriptors.

program main
  implicit none
  unsigned(kind=8) :: u,v
  integer :: i
  open(10,status="scratch")
  u = 3u
  do i=0,63
     write (10,'(Z16)') u
     u = u + u
  end do
  rewind 10
  u = 3u
  do i=0,63
     read (10,'(Z16)') v
     if (u /= v) then
        print *,u,v
     end if
     u = u + u
  end do
  rewind 10
  u = 3u
  do i=0,63
     write (10,'(O22)') u
     u = u + u
  end do
  rewind 10
  u = 3u
  do i=0,63
     read (10,'(O22)') v
     if (u /= v) then
        print *,u,v
     end if
     u = u + u
  end do

  rewind 10
  u = 3u
  do i=0,63
     write (10,'(B64)') u
     u = u + u
  end do
  rewind 10
  u = 3u
  do i=0,63
     read (10,'(B64)') v
     if (u /= v) then
        print *,u,v
     end if
     u = u + u
  end do

end program main