| ! RUN: not %flang -falternative-parameter-statement -fsyntax-only %s 2>&1 | FileCheck %s | |
| ! Error tests for "old style" PARAMETER statements | |
| subroutine subr(x1,x2,x3,x4,x5) | |
| type(*), intent(in) :: x1 | |
| class(*), intent(in) :: x2 | |
| real, intent(in) :: x3(*) | |
| real, intent(in) :: x4(:) | |
| character(*), intent(in) :: x5 | |
| !CHECK: error: TYPE(*) dummy argument may only be used as an actual argument | |
| parameter p1 = x1 | |
| !CHECK: error: Must be a constant value | |
| parameter p2 = x2 | |
| !CHECK: error: Whole assumed-size array 'x3' may not appear here without subscripts | |
| !CHECK: error: Must be a constant value | |
| parameter p3 = x3 | |
| !CHECK: error: Must be a constant value | |
| parameter p4 = x4 | |
| !CHECK: error: Must be a constant value | |
| parameter p5 = x5 | |
| !CHECK: The expression must be a constant of known type | |
| parameter p6 = z'feedfacedeadbeef' | |
| !CHECK: error: Must be a constant value | |
| parameter p7 = len(x5) | |
| real :: p8 | |
| !CHECK: error: Alternative style PARAMETER 'p8' must not already have an explicit type | |
| parameter p8 = 666 | |
| end |