43 lines · plain
1! RUN: %python %S/test_symbols.py %s %flang_fc12! Ensure that SMPs work with dummy procedures declared as interfaces3!DEF: /m Module4module m5 implicit none6 interface7 !DEF: /m/smp MODULE, PUBLIC, PURE (Function) Subprogram REAL(4)8 !DEF: /m/smp/f EXTERNAL, PURE (Function) Subprogram REAL(4)9 !DEF: /m/smp/x INTENT(IN) ObjectEntity REAL(4)10 !DEF: /m/smp/res ObjectEntity REAL(4)11 pure module function smp(f, x) result(res)12 !REF: /m/smp/res13 real res14 interface15 !REF: /m/smp/f16 !DEF: /m/smp/f/x INTENT(IN) ObjectEntity REAL(4)17 !DEF: /m/smp/f/r ObjectEntity REAL(4)18 pure function f(x) result(r)19 !REF: /m/smp/f/x20 real, intent(in) :: x21 !REF: /m/smp/f/r22 real r23 end function24 end interface25 !REF: /m/smp/x26 real, intent(in) :: x27 end function28 end interface29end module30!REF: /m31!DEF: /m/sm Module32submodule (m)sm33 implicit none34contains35 !DEF: /m/sm/smp MODULE, PUBLIC, PURE (Function) Subprogram REAL(4)36 module procedure smp37 !DEF: /m/sm/smp/res ObjectEntity REAL(4)38 !DEF: /m/sm/smp/f EXTERNAL, PURE (Function) Subprogram REAL(4)39 !DEF: /m/sm/smp/x INTENT(IN) ObjectEntity REAL(4)40 res = f(x)41 end procedure42end submodule43