https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85954
Paul Thomas <pault at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |pault at gcc dot gnu.org --- Comment #5 from Paul Thomas <pault at gcc dot gnu.org> --- I had better take it. Bizarrely, this works correctly: program p character(:), allocatable :: z(:) interface subroutine s(x) character(:), allocatable :: x(:) end subroutine t(x) character(:), allocatable :: x(:) end end interface allocate (z, source = ['lmnop']) call s(z) call t(z) end subroutine s(x) character(:), allocatable :: x(:) associate (y => x) y = ['abc'] end associate print *, allocated(x), size(x), len(x), x end subroutine t(x) character(:), allocatable :: x(:) x = ['abc'] print *, allocated(x), size(x), len(x), x end Cheers Paul