! RUN: %python %S/test_modfile.py %s %flang_fc1
! Ensure that interfaces, which are internal to procedures and are used to
! define the interface of dummy or return value procedures, are included in
! .mod files.
module m
implicit none
contains
function f(x)
real, intent(in) :: x
abstract interface
subroutine used_int(x, p)
implicit none
real, intent(out) :: x
interface
subroutine inner_int(x)
implicit none
real, intent(out) :: x
end subroutine inner_int
end interface
procedure(inner_int) :: p
end subroutine used_int
pure logical function unused_int(i)
implicit none
integer, intent(in) :: i
end function unused_int
end interface
procedure(used_int), pointer :: f
f => null()
contains
subroutine internal()
end subroutine internal
end function f
end module m
!Expect: m.mod
!module m
!contains
!function f(x)
!real(4),intent(in)::x
!abstract interface
!subroutine used_int(x,p)
!real(4),intent(out)::x
!interface
!subroutine inner_int(x)
!real(4),intent(out)::x
!end
!end interface
!procedure(inner_int)::p
!end
!end interface
!procedure(used_int),pointer::f
!end
!end