! { dg-do run } ! PR 28416: Check that allocatable dummies can be passed onwards as non-assumed ! shape arg. program main implicit none integer, allocatable :: a(:) interface subroutine foo(v_out) integer, allocatable :: v_out(:) end subroutine foo end interface call foo(a) if (any(a /= [ 1, 2, 3 ])) call abort() end program subroutine foo(v_out) implicit none integer, allocatable :: v_out(:) allocate(v_out(3)) call bar(v_out, size(v_out)) end subroutine foo subroutine bar(v, N) implicit none integer :: N integer :: v(N) integer :: i do i = 1, N v(i) = i end do end subroutine bar