1! { dg-do run } 2! PR31306 ICE with implicit character variables 3! Test case from PR and prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org> 4module cyclic 5 implicit none 6 contains 7 character(10) function ouch(x,y) 8 implicit character(len(ouch)) (x) 9 implicit character(len(x)+1) (y) 10 intent(in) x,y 11 integer i 12 do i = 1, len(ouch) 13 ouch(i:i) = achar(ieor(iachar(x(i:i)),iachar(y(i:i)))) 14 end do 15 end function ouch 16end module cyclic 17 18program test 19 use cyclic 20 implicit none 21 character(10) astr 22 integer i 23 write(astr,'(a)') ouch('YOW! ','jerry ') 24 if (astr(1:5) /= "3*%SY") call abort 25 do i=6,10 26 if (astr(i:i) /= achar(0)) call abort 27 end do 28end program test 29