1b85922cdSEmil Kieri! RUN: %python %S/test_modfile.py %s %flang_fc1 2b85922cdSEmil Kieri! Ensure that interfaces, which are internal to procedures and are used to 3b85922cdSEmil Kieri! define the interface of dummy or return value procedures, are included in 4b85922cdSEmil Kieri! .mod files. 5b85922cdSEmil Kierimodule m 6b85922cdSEmil Kieri implicit none 7b85922cdSEmil Kiericontains 8b85922cdSEmil Kieri function f(x) 9b85922cdSEmil Kieri real, intent(in) :: x 10b85922cdSEmil Kieri abstract interface 11b85922cdSEmil Kieri subroutine used_int(x, p) 12b85922cdSEmil Kieri implicit none 13b85922cdSEmil Kieri real, intent(out) :: x 14b85922cdSEmil Kieri interface 15b85922cdSEmil Kieri subroutine inner_int(x) 16b85922cdSEmil Kieri implicit none 17b85922cdSEmil Kieri real, intent(out) :: x 18b85922cdSEmil Kieri end subroutine inner_int 19b85922cdSEmil Kieri end interface 20b85922cdSEmil Kieri procedure(inner_int) :: p 21b85922cdSEmil Kieri end subroutine used_int 22b85922cdSEmil Kieri 23b85922cdSEmil Kieri pure logical function unused_int(i) 24b85922cdSEmil Kieri implicit none 25b85922cdSEmil Kieri integer, intent(in) :: i 26b85922cdSEmil Kieri end function unused_int 27b85922cdSEmil Kieri end interface 28b85922cdSEmil Kieri procedure(used_int), pointer :: f 29b85922cdSEmil Kieri 30b85922cdSEmil Kieri f => null() 31b85922cdSEmil Kieri contains 32b85922cdSEmil Kieri subroutine internal() 33b85922cdSEmil Kieri end subroutine internal 34b85922cdSEmil Kieri end function f 35b85922cdSEmil Kieriend module m 36b85922cdSEmil Kieri 37b85922cdSEmil Kieri!Expect: m.mod 38b85922cdSEmil Kieri!module m 39b85922cdSEmil Kieri!contains 40b85922cdSEmil Kieri!function f(x) 41b85922cdSEmil Kieri!real(4),intent(in)::x 42b85922cdSEmil Kieri!abstract interface 43b85922cdSEmil Kieri!subroutine used_int(x,p) 44b85922cdSEmil Kieri!real(4),intent(out)::x 45b85922cdSEmil Kieri!interface 46b85922cdSEmil Kieri!subroutine inner_int(x) 47b85922cdSEmil Kieri!real(4),intent(out)::x 48b85922cdSEmil Kieri!end 49b85922cdSEmil Kieri!end interface 50*df3e5f18SPeter Klausler!procedure(inner_int)::p 51b85922cdSEmil Kieri!end 52b85922cdSEmil Kieri!end interface 53*df3e5f18SPeter Klausler!procedure(used_int),pointer::f 54b85922cdSEmil Kieri!end 55b85922cdSEmil Kieri!end 56