! { dg-do compile } function reverse(string) implicit none character(len=*), intent(in) :: string character(len=:),allocatable :: reverse integer i reverse = string forall (i=1:len(reverse)) reverse(i:i) = & reverse(len(reverse)-i+1:len(reverse)-i+1) end function reverse