1! { dg-do compile }
2!
3! PR 60507: Passing function call into procedure argument not caught
4!
5! Contributed by Vladimir Fuka <vladimir.fuka@gmail.com>
6
7type :: t
8  procedure(g), pointer, nopass :: ppc => g
9end type
10
11procedure(g), pointer :: pp => g
12type(t)::x
13
14print *, f(g)
15print *, f(g())      ! { dg-error "Expected a procedure for argument" }
16print *, f(pp)
17print *, f(pp())     ! { dg-error "Expected a procedure for argument" }
18print *, f(x%ppc)
19print *, f(x%ppc())  ! { dg-error "Expected a procedure for argument" }
20
21contains
22
23  real function f(fun)
24    procedure(g) :: fun
25    f = fun()
26  end function
27
28  real function g()
29    g = 1.
30  end function
31
32end
33