1! { dg-do compile }
2!
3! PR fortran/54107
4! Recursive interfaces used to lead to an infinite recursion during
5! translation.
6
7module m
8 contains
9  subroutine foo (arg)
10    procedure(foo) :: arg
11  end subroutine
12  function foo2 (arg) result(r)
13    procedure(foo2) :: arg
14    procedure(foo2), pointer :: r
15  end function
16  subroutine bar (arg)
17    procedure(baz) :: arg
18  end subroutine
19  subroutine baz (arg)
20    procedure(bar) :: arg
21  end subroutine
22end module m
23