diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/pure_byref_2.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/pure_byref_2.f90 | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/pure_byref_2.f90 b/gcc/testsuite/gfortran.dg/pure_byref_2.f90 new file mode 100644 index 000000000..805653e2e --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pure_byref_2.f90 @@ -0,0 +1,17 @@ +! { dg-do run } +! PR 22607: PURE return-by-reference functions +program main + implicit none + integer, dimension(2) :: b + b = fun(size(b)) + if (b(1) /= 1 .or. b(2) /= 2) call abort() +contains + pure function fun(n) + integer, intent(in) :: n + integer :: fun(n) + integer :: i + do i = 1, n + fun(i) = i + end do + end function fun +end program main |