! { dg-do run }
! PR31306 ICE with implicit character variables
! Test case from PR and prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org>
module cyclic
 implicit none
 contains
   character(10) function ouch(x,y)
     implicit character(len(ouch)) (x)
     implicit character(len(x)+1) (y)
     intent(in) x,y
     integer i
     do i = 1, len(ouch)
        ouch(i:i) = achar(ieor(iachar(x(i:i)),iachar(y(i:i))))
     end do
   end function ouch
end module cyclic

program test
  use cyclic
  implicit none
  character(10) astr
  integer i
  write(astr,'(a)') ouch('YOW!      ','jerry      ')
  if (astr(1:5) /= "3*%SY") STOP 1
  do i=6,10
    if (astr(i:i) /= achar(0)) STOP 2
  end do    
end program test
