! RUN: %python %S/test_errors.py %s %flang_fc1 ! Ensure that FINAL subroutine can be called for array with vector-valued ! subscript. module m type t1 contains final :: f1 end type type t2 contains final :: f2 end type type t3 contains final :: f3 end type contains subroutine f1(x) type(t1), intent(in out) :: x(:) end subroutine subroutine f2(x) type(t2), intent(in out) :: x(..) end subroutine impure elemental subroutine f3(x) type(t3), intent(in out) :: x end subroutine end module program test use m type(t1) x1(1) type(t2) x2(1) type(t3) x3(1) x1(:) = [t1()] ! ok x2(:) = [t2()] ! ok x3(:) = [t3()] ! ok !ERROR: Left-hand side of assignment is not definable !BECAUSE: Variable 'x1([INTEGER(8)::1_8])' has a vector subscript and cannot be finalized by non-elemental subroutine 'f1' x1([1]) = [t1()] !ERROR: Left-hand side of assignment is not definable !BECAUSE: Variable 'x2([INTEGER(8)::1_8])' has a vector subscript and cannot be finalized by non-elemental subroutine 'f2' x2([1]) = [t2()] x3([1]) = [t3()] ! ok end