! { dg-do run } ! ! PR fortran/57365 ! [OOP] Sourced allocation fails with unlimited polymorphism ! Contributed by ! program bug implicit none character(len=:), allocatable :: test test = "A test case" call allocate_test(test) deallocate(test) contains subroutine allocate_test(var) class(*) :: var class(*), pointer :: copyofvar allocate(copyofvar, source=var) select type (copyofvar) type is (character(len=*)) ! print*, len(copyofvar), copyofvar if (len(copyofvar) /= 11) STOP 1 if (copyofvar /= "A test case") STOP 2 end select deallocate(copyofvar) end subroutine end program bug