xref: /llvm-project/flang/test/Semantics/call28.f90 (revision bc83d1c655c13c58e34515d8efe7784c62012437)
17efec1a4SPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1
27efec1a4SPeter Klausler
37efec1a4SPeter Klauslermodule m1
47efec1a4SPeter Klausler  type :: t
57efec1a4SPeter Klausler  end type
67efec1a4SPeter Klausler contains
77efec1a4SPeter Klausler  pure subroutine s1(x)
87efec1a4SPeter Klausler    class(t), intent(in out) :: x
97efec1a4SPeter Klausler    call s2(x)
107efec1a4SPeter Klausler    call s3(x)
117efec1a4SPeter Klausler  end subroutine
127efec1a4SPeter Klausler  pure subroutine s2(x)
137efec1a4SPeter Klausler    class(t), intent(in out) :: x
14*bc83d1c6SPeter Klausler    !ERROR: Left-hand side of assignment may not be polymorphic unless assignment is to an entire allocatable
157efec1a4SPeter Klausler    !ERROR: Left-hand side of assignment is not definable
167efec1a4SPeter Klausler    !BECAUSE: 'x' is polymorphic in a pure subprogram
177efec1a4SPeter Klausler    x = t()
187efec1a4SPeter Klausler  end subroutine
197efec1a4SPeter Klausler  pure subroutine s3(x)
207efec1a4SPeter Klausler    !ERROR: An INTENT(OUT) dummy argument of a pure subroutine may not be polymorphic
217efec1a4SPeter Klausler    class(t), intent(out) :: x
227efec1a4SPeter Klausler  end subroutine
237efec1a4SPeter Klauslerend module
24