! { dg-do run }
! PR fortran/102287 - optional allocatable DT array arguments (intent out)
module m
type t
integer, allocatable :: a
end type t
contains
subroutine a (x, v)
type(t), optional, allocatable, intent(out) :: x(:)
type(t), optional, intent(out) :: v(:)
call b (x, v)
end subroutine a
subroutine b (y, w)
type(t), optional, allocatable, intent(out) :: y(:)
type(t), optional, intent(out) :: w(:)
end subroutine b
end module m
program p
use m
call a ()
end