1! { dg-do compile }
2
3! PR fortran/37779
4! Check that using a non-recursive procedure as "value" is an error.
5
6MODULE m
7  IMPLICIT NONE
8
9CONTAINS
10
11  SUBROUTINE test ()
12    IMPLICIT NONE
13    PROCEDURE(test), POINTER :: procptr
14
15    CALL bar (test) ! { dg-warning "Non-RECURSIVE" }
16    procptr => test ! { dg-warning "Non-RECURSIVE" }
17  END SUBROUTINE test
18
19  INTEGER FUNCTION test2 () RESULT (x)
20    IMPLICIT NONE
21    PROCEDURE(test2), POINTER :: procptr
22
23    CALL bar (test2) ! { dg-warning "Non-RECURSIVE" }
24    procptr => test2 ! { dg-warning "Non-RECURSIVE" }
25
26    x = 1812
27  END FUNCTION test2
28
29  INTEGER FUNCTION func ()
30    ! Using a result variable is ok of course!
31    func = 42 ! { dg-bogus "Non-RECURSIVE" }
32  END FUNCTION func
33
34END MODULE m
35