blob: 3f907c78d5bcf85723740017deb554e814aaecf7 [file] [log] [blame]
! { dg-do compile }
! { dg-options "-Wimplicit-procedure" }
! PR fortran/22552
! Check for correct -Wimplicit-procedure warnings.
MODULE m
CONTAINS
SUBROUTINE my_sub ()
END SUBROUTINE my_sub
INTEGER FUNCTION my_func ()
my_func = 42
END FUNCTION my_func
END MODULE m
SUBROUTINE test (proc)
IMPLICIT NONE
CALL proc () ! { dg-bogus "is not explicitly declared" }
END SUBROUTINE test
PROGRAM main
USE m
EXTERNAL :: ext_sub
EXTERNAL :: test
INTEGER :: ext_func
CALL ext_sub () ! { dg-bogus "is not explicitly declared" }
PRINT *, ext_func () ! { dg-bogus "is not explicitly declared" }
PRINT *, implicit_func () ! { dg-bogus "is not explicitly declared" }
CALL my_sub () ! { dg-bogus "is not explicitly declared" }
PRINT *, my_func () ! { dg-bogus "is not explicitly declared" }
PRINT *, SIN (3.14159) ! { dg-bogus "is not explicitly declared" }
CALL undef_sub (1, 2, 3) ! { dg-warning "is not explicitly declared" }
! Can't check undefined function, because it needs to be declared a type
! in any case (and the implicit type is enough to not trigger this warning).
END PROGRAM