diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/allocatable_dummy_3.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/allocatable_dummy_3.f90 | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/allocatable_dummy_3.f90 b/gcc/testsuite/gfortran.dg/allocatable_dummy_3.f90 new file mode 100644 index 000000000..d2b4e1eba --- /dev/null +++ b/gcc/testsuite/gfortran.dg/allocatable_dummy_3.f90 @@ -0,0 +1,39 @@ +! { 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 |