40 lines
1.1 KiB
Fortran
40 lines
1.1 KiB
Fortran
! RUN: %python %S/test_symbols.py %s %flang_fc1
|
|
! Ensure that SMPs work with dummy procedures declared as interfaces
|
|
!DEF: /m Module
|
|
module m
|
|
implicit none
|
|
interface
|
|
!DEF: /m/smp MODULE, PUBLIC, PURE (Function) Subprogram REAL(4)
|
|
!DEF: /m/smp/f EXTERNAL, PURE (Function) Subprogram REAL(4)
|
|
!DEF: /m/smp/x INTENT(IN) ObjectEntity REAL(4)
|
|
!DEF: /m/smp/res (Implicit) ObjectEntity REAL(4)
|
|
pure module function smp(f, x) result(res)
|
|
interface
|
|
!REF: /m/smp/f
|
|
!DEF: /m/smp/f/x INTENT(IN) ObjectEntity REAL(4)
|
|
!DEF: /m/smp/f/r ObjectEntity REAL(4)
|
|
pure function f(x) result(r)
|
|
!REF: /m/smp/f/x
|
|
real, intent(in) :: x
|
|
!REF: /m/smp/f/r
|
|
real r
|
|
end function
|
|
end interface
|
|
!REF: /m/smp/x
|
|
real, intent(in) :: x
|
|
end function
|
|
end interface
|
|
end module
|
|
!REF: /m
|
|
!DEF: /m/sm Module
|
|
submodule (m)sm
|
|
implicit none
|
|
contains
|
|
!DEF: /m/sm/smp MODULE, PUBLIC, PURE (Function) Subprogram REAL(4)
|
|
module procedure smp
|
|
!DEF: /m/sm/smp/res (Implicit) ObjectEntity REAL(4)
|
|
!DEF: /m/sm/smp/f EXTERNAL, PURE (Function) Subprogram REAL(4)
|
|
!DEF: /m/sm/smp/x INTENT(IN) ObjectEntity REAL(4)
|
|
res = f(x)
|
|
end procedure
|
|
end submodule
|