! { dg-do run } program main if (bug() /= "abcdefghij") call abort contains function bug() character(len=10) :: bug character(len=1), dimension(:), pointer :: p_chars allocate(p_chars(10)) p_chars = ['a','b','c','d','e','f','g','h','i','j'] forall (i=1:len(bug)) bug(i:i) = p_chars(i) end forall deallocate(p_chars) end function bug end program main