37 lines
791 B
Fortran
37 lines
791 B
Fortran
! { dg-do compile }
|
|
|
|
! PR fortran/37779
|
|
! Check that using a non-recursive procedure as "value" is an error.
|
|
|
|
MODULE m
|
|
IMPLICIT NONE
|
|
|
|
CONTAINS
|
|
|
|
SUBROUTINE test ()
|
|
IMPLICIT NONE
|
|
PROCEDURE(test), POINTER :: procptr
|
|
|
|
CALL bar (test) ! { dg-warning "Non-RECURSIVE" }
|
|
procptr => test ! { dg-warning "Non-RECURSIVE" }
|
|
END SUBROUTINE test
|
|
|
|
INTEGER FUNCTION test2 () RESULT (x)
|
|
IMPLICIT NONE
|
|
PROCEDURE(test2), POINTER :: procptr
|
|
|
|
CALL bar (test2) ! { dg-warning "Non-RECURSIVE" }
|
|
procptr => test2 ! { dg-warning "Non-RECURSIVE" }
|
|
|
|
x = 1812
|
|
END FUNCTION test2
|
|
|
|
INTEGER FUNCTION func ()
|
|
! Using a result variable is ok of course!
|
|
func = 42 ! { dg-bogus "Non-RECURSIVE" }
|
|
END FUNCTION func
|
|
|
|
END MODULE m
|
|
|
|
! { dg-final { cleanup-modules "m" } }
|