! { 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" } }
