llvm/flang/test/Semantics/call28.f90

! RUN: %python %S/test_errors.py %s %flang_fc1

module m1
  type :: t
  end type
 contains
  pure subroutine s1(x)
    class(t), intent(in out) :: x
    call s2(x)
    call s3(x)
  end subroutine
  pure subroutine s2(x)
    class(t), intent(in out) :: x
    !ERROR: Left-hand side of assignment may not be polymorphic unless assignment is to an entire allocatable
    !ERROR: Left-hand side of assignment is not definable
    !BECAUSE: 'x' is polymorphic in a pure subprogram
    x = t()
  end subroutine
  pure subroutine s3(x)
    !ERROR: An INTENT(OUT) dummy argument of a pure subroutine may not be polymorphic
    class(t), intent(out) :: x
  end subroutine
end module