! 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 actual argument requires an explicit interface
  call implicit13(pdtx)  ! 15.4.2.2(3)(e)
  call implicit14(class)  ! ok
  !ERROR: Unlimited polymorphic actual argument requires an explicit interface
  call implicit15(classStar)  ! 15.4.2.2(3)(f)
  !ERROR: Assumed type actual 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

