36 lines
695 B
Fortran
36 lines
695 B
Fortran
! { dg-do run }
|
|
! PR 22607: External/module pure return-by-reference functions
|
|
|
|
pure function hoj()
|
|
integer :: hoj(3)
|
|
hoj = (/1, 2, 3/)
|
|
end function hoj
|
|
|
|
module huj_mod
|
|
contains
|
|
pure function huj()
|
|
integer :: huj(3)
|
|
huj = (/1, 2, 3/)
|
|
end function huj
|
|
end module huj_mod
|
|
|
|
program pure_byref_3
|
|
use huj_mod
|
|
implicit none
|
|
|
|
interface
|
|
pure function hoj()
|
|
integer :: hoj(3)
|
|
end function hoj
|
|
end interface
|
|
integer :: a(3)
|
|
|
|
a = huj()
|
|
if (.not. all(a == (/1, 2, 3/))) call abort()
|
|
|
|
a = hoj()
|
|
if (.not. all(a == (/1, 2, 3/))) call abort()
|
|
end program pure_byref_3
|
|
|
|
! { dg-final { cleanup-modules "huj_mod" } }
|