| ! RUN: %python %S/test_errors.py %s %flang_fc1 |
| ! Test 15.4.2.2 constraints and restrictions for calls to implicit |
| ! interfaces |
| |
| subroutine s(assumedRank, coarray, class, classStar, typeStar) |
| type :: t |
| end type |
| |
| real :: assumedRank(..), coarray[*] |
| class(t) :: class |
| class(*) :: classStar |
| type(*) :: typeStar |
| |
| type :: pdt(len) |
| integer, len :: len |
| end type |
| type(pdt(1)) :: pdtx |
| |
| !ERROR: Invalid specification expression: reference to impure function 'implicit01' |
| real :: array(implicit01()) ! 15.4.2.2(2) |
| !ERROR: Keyword 'keyword=' may not appear in a reference to a procedure with an implicit interface |
| call implicit10(1, 2, keyword=3) ! 15.4.2.2(1) |
| !ERROR: Assumed rank argument requires an explicit interface |
| call implicit11(assumedRank) ! 15.4.2.2(3)(c) |
| !ERROR: Coarray argument requires an explicit interface |
| call implicit12(coarray) ! 15.4.2.2(3)(d) |
| !ERROR: Parameterized derived type argument requires an explicit interface |
| call implicit13(pdtx) ! 15.4.2.2(3)(e) |
| !ERROR: Polymorphic argument requires an explicit interface |
| call implicit14(class) ! 15.4.2.2(3)(f) |
| !ERROR: Polymorphic argument requires an explicit interface |
| call implicit15(classStar) ! 15.4.2.2(3)(f) |
| !ERROR: Assumed type argument requires an explicit interface |
| call implicit16(typeStar) ! 15.4.2.2(3)(f) |
| !ERROR: TYPE(*) dummy argument may only be used as an actual argument |
| if (typeStar) then |
| endif |
| !ERROR: TYPE(*) dummy argument may only be used as an actual argument |
| classStar = typeStar ! C710 |
| !ERROR: TYPE(*) dummy argument may only be used as an actual argument |
| typeStar = classStar ! C710 |
| end subroutine |
| |