1! { dg-do run }
2!
3! Tests that PR63932 stays fixed.
4!
5! Contributed by Valery Weber  <valeryweber@hotmail.com>
6!
7module mod
8  type :: t
9     character(:), allocatable :: c
10     integer :: i
11   contains
12     procedure, pass :: get
13  end type t
14  type :: u
15     character(:), allocatable :: c
16  end type u
17contains
18  subroutine get(this, a)
19    class(t), intent(in) :: this
20    character(:), allocatable, intent(out), optional :: a
21    if (present (a)) a = this%c
22  end subroutine get
23end module mod
24
25program test
26  use mod
27  type(t) :: a
28  type(u) :: b
29  a%c = 'something'
30  call a%get (a = b%c)
31  if (b%c .ne. 'something') STOP 1
32end program test
33