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