1! { dg-do compile }
2! PR fortran/35830
3!
4abstract interface
5  function ptrfunc()
6    integer, pointer :: ptrfunc
7  end function ptrfunc
8  elemental subroutine elem(a)
9    integer,intent(in) :: a
10  end subroutine elem
11  function dims()
12    integer :: dims(3)
13  end function dims
14end interface
15
16procedure(ptrfunc) :: func_a
17procedure(elem)    :: func_b
18procedure(dims)     :: func_c
19
20integer, pointer :: ptr
21integer :: array(3)
22
23ptr => func_a()
24call func_b([1,2,3])
25array = func_c()
26end
27