forked from OSchip/llvm-project
44 lines
1.6 KiB
Fortran
44 lines
1.6 KiB
Fortran
! RUN: %B/test/Semantics/test_errors.sh %s %flang %t
|
|
! 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
|
|
|