! 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 ObjectEntity REAL(4)
pure module function smp(f, x) result(res)
!REF: /m/smp/res
real 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 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