| ! { 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 |