xref: /llvm-project/flang/test/Semantics/final03.f90 (revision d5285fef00f6c5a725a515118192dd117fc3c665)
1*d5285fefSPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic -Werror
2d84faa42SPeter Klausler! PDT sensitivity of FINAL subroutines
3d84faa42SPeter Klauslermodule m
4d84faa42SPeter Klausler  type :: pdt(k)
5d84faa42SPeter Klausler    integer, kind :: k
6d84faa42SPeter Klausler   contains
7d84faa42SPeter Klausler    final :: finalArr, finalElem
8d84faa42SPeter Klausler  end type
9d84faa42SPeter Klausler contains
10d84faa42SPeter Klausler  subroutine finalArr(x)
11d84faa42SPeter Klausler    type(pdt(1)), intent(in out) :: x(:)
12d84faa42SPeter Klausler  end
13d84faa42SPeter Klausler  elemental subroutine finalElem(x)
14d84faa42SPeter Klausler    type(pdt(3)), intent(in out) :: x
15d84faa42SPeter Klausler  end
16d84faa42SPeter Klauslerend
17d84faa42SPeter Klausler
18d84faa42SPeter Klauslerprogram test
19d84faa42SPeter Klausler  use m
20d84faa42SPeter Klausler  type(pdt(1)) x1(1)
21d84faa42SPeter Klausler  type(pdt(2)) x2(1)
22d84faa42SPeter Klausler  type(pdt(3)) x3(1)
23*d5285fefSPeter Klausler  !PORTABILITY: Variable 'x1([INTEGER(8)::1_8])' has a vector subscript and will be finalized by non-elemental subroutine 'finalarr'
24d84faa42SPeter Klausler  x1([1]) = pdt(1)()
25d84faa42SPeter Klausler  x2([1]) = pdt(2)() ! ok, doesn't match either
26d84faa42SPeter Klausler  x3([1]) = pdt(3)() ! ok, calls finalElem
27d84faa42SPeter Klauslerend
28