12 class(t), allocatable :: y(:), z(:)
14 allocate(y(2), source=[t2(2), t2(3)])
19 if (any (z(:)%a /= [2, 3])) call abort()
26 class (t), allocatable :: x(:), func(:)
27 call move_alloc (x, func)
31 class (t), allocatable :: x(:), func1(:)
32 call move_alloc (func1, x)
35 subroutine func2(x, y)
36 class (t), allocatable :: x(:), y(:)
37 call move_alloc (x, y)