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

Reply via email to