! { dg-do run }
! PR69651 Usage of unitialized pointer io/list_read.c 
! Note: The uninitialized pointer was not the cause of the problem
!       observed with this test case. The problem was mishandling '!'
!       See also test case read_bang4.f90.
program test
  implicit none
  integer :: i, j, ios
  real ::  r, s
  complex :: c, d
  character(20) :: str1, str2
  
  i = -5
  j = -6
  r = -3.14
  s = -2.71
  c = (-1.1,-2.2)
  d = (-3.3,-4.4)
  str1 = "candy"
  str2 = "peppermint"
  open(15, status='scratch')
  write(15,*) "10  1!2"
  write(15,*) "  23.5! 34.5"
  write(15,*) "  (67.50,69.25)  (51.25,87.75)!"
  write(15,*) "  'abcdefgh!' '  !klmnopq!'"
  rewind(15)
  read(15,*,iostat=ios) i, j
  if (ios.ne.5010) STOP 1
  read(15,*,iostat=ios) r, s
  if (ios.ne.5010) STOP 2
  read(15,*,iostat=ios) c, d
  if (ios.ne.5010) STOP 3
  read(15,*,iostat=ios) str1, str2
  if (ios.ne.0) STOP 4
  if (str1.ne."abcdefgh!") print *, str1
  if (str2.ne."  !klmnopq!") print *, str2
  close(15)
end program
