| ! { dg-do compile } |
| ! { dg-options "-std=f95" } |
| |
| ! Test for a special case of the used-before-typed errors, when the symbols |
| ! not-yet-typed are indices. |
| |
| SUBROUTINE test (n, arr1, m, arr2) ! { dg-error "has no IMPLICIT type" } |
| IMPLICIT NONE |
| |
| INTEGER :: myarr(42) |
| |
| INTEGER :: arr1(SIZE (myarr(1:n))) ! { dg-error "'n' is used before" } |
| INTEGER :: n |
| |
| INTEGER :: arr2(LEN ("hello"(1:m))) ! { dg-error "'m' is used before" } |
| INTEGER :: m |
| |
| WRITE (*,*) SIZE (arr1) |
| WRITE (*,*) SIZE (arr2) |
| END SUBROUTINE test |
| |
| PROGRAM main |
| IMPLICIT NONE |
| INTEGER :: arr1(42), arr2(42) |
| CALL test (3, arr1, 2, arr2) ! { dg-warning "Type mismatch in argument" } |
| END PROGRAM main |