summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/pure_byref_3.f90
blob: a9d860bf0414fcb8b77c54fd29a74eacdeda9ad5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
! { 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" } }