PR target/83368
[official-gcc.git] / gcc / testsuite / gfortran.dg / recursive_check_4.f03
blobece42ca2312faa8327d30895ba4318bf471fd5ca
1 ! { dg-do compile }
3 ! PR fortran/37779
4 ! Check that using a non-recursive procedure as "value" is an error.
6 MODULE m
7   IMPLICIT NONE
9 CONTAINS
11   SUBROUTINE test ()
12     IMPLICIT NONE
13     PROCEDURE(test), POINTER :: procptr
15     CALL bar (test) ! { dg-warning "Non-RECURSIVE" }
16     procptr => test ! { dg-warning "Non-RECURSIVE" }
17   END SUBROUTINE test
19   INTEGER FUNCTION test2 () RESULT (x)
20     IMPLICIT NONE
21     PROCEDURE(test2), POINTER :: procptr
23     CALL bar (test2) ! { dg-warning "Non-RECURSIVE" }
24     procptr => test2 ! { dg-warning "Non-RECURSIVE" }
26     x = 1812
27   END FUNCTION test2
29   INTEGER FUNCTION func ()
30     ! Using a result variable is ok of course!
31     func = 42 ! { dg-bogus "Non-RECURSIVE" }
32   END FUNCTION func
34 END MODULE m