! RUN: %python %S/test_errors.py %s %flang_fc1
module m
type t1
end type
type t2
class(t2), allocatable :: pc
end type
class(t1), pointer :: mp1
type(t2) :: mv1
contains
pure subroutine subr(pp1, pp2, mp2)
class(t1), intent(in out), pointer :: pp1
class(t2), intent(in out) :: pp2
type(t2), pointer :: mp2
!ERROR: Name in DEALLOCATE statement is not definable
!BECAUSE: 'mp1' may not be defined in pure subprogram 'subr' because it is host-associated
deallocate(mp1)
!ERROR: Name in DEALLOCATE statement is not definable
!BECAUSE: 'mv1' may not be defined in pure subprogram 'subr' because it is host-associated
deallocate(mv1%pc)
!ERROR: Object in DEALLOCATE statement is not deallocatable
!BECAUSE: 'pp1' is polymorphic in a pure subprogram
deallocate(pp1)
!ERROR: Object in DEALLOCATE statement is not deallocatable
!BECAUSE: 'pc' is polymorphic in a pure subprogram
deallocate(pp2%pc)
!ERROR: Object in DEALLOCATE statement is not deallocatable
!BECAUSE: 'mp2' has polymorphic component '%pc' in a pure subprogram
deallocate(mp2)
end subroutine
end module