xref: /llvm-project/flang/test/Semantics/contiguous01.f90 (revision 33c27f28d1cd05fd0a739498105927c1fba04666)
191917387SPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic
2a8654b44SPeter Klauslermodule m0
3a8654b44SPeter Klausler  real, pointer, contiguous :: p1(:) ! ok
4a8654b44SPeter Klausler  real, pointer :: p2(:)
5a8654b44SPeter Klauslerend
6a8654b44SPeter Klauslermodule m
7a8654b44SPeter Klausler  use m0
85a402c56SPeter Klausler  !WARNING: Use-associated 'p1' already has 'CONTIGUOUS' attribute
9a8654b44SPeter Klausler  contiguous p1
10a8654b44SPeter Klausler  !ERROR: Cannot change CONTIGUOUS attribute on use-associated 'p2'
11a8654b44SPeter Klausler  contiguous p2
1291917387SPeter Klausler  !PORTABILITY: CONTIGUOUS entity 'x' should be an array pointer, assumed-shape, or assumed-rank
13a8654b44SPeter Klausler  real, contiguous :: x
1491917387SPeter Klausler  !PORTABILITY: CONTIGUOUS entity 'scalar' should be an array pointer, assumed-shape, or assumed-rank
15a8654b44SPeter Klausler  real, contiguous, pointer :: scalar
1691917387SPeter Klausler  !PORTABILITY: CONTIGUOUS entity 'allocatable' should be an array pointer, assumed-shape, or assumed-rank
17a8654b44SPeter Klausler  real, contiguous, allocatable :: allocatable
18a8654b44SPeter Klausler contains
1991917387SPeter Klausler  !PORTABILITY: CONTIGUOUS entity 'func' should be an array pointer, assumed-shape, or assumed-rank
20a8654b44SPeter Klausler  function func(ashape,arank) result(r)
21a8654b44SPeter Klausler    real, contiguous :: ashape(:) ! ok
22a8654b44SPeter Klausler    real, contiguous :: arank(..) ! ok
2391917387SPeter Klausler    !PORTABILITY: CONTIGUOUS entity 'r' should be an array pointer, assumed-shape, or assumed-rank
24a8654b44SPeter Klausler    real :: r(10)
2591917387SPeter Klausler    !PORTABILITY: CONTIGUOUS entity 'r2' should be an array pointer, assumed-shape, or assumed-rank
26a8654b44SPeter Klausler    real :: r2(10)
27a8654b44SPeter Klausler    contiguous func
28a8654b44SPeter Klausler    contiguous r
29a8654b44SPeter Klausler    contiguous e
30a8654b44SPeter Klausler    contiguous r2
3191917387SPeter Klausler    !PORTABILITY: CONTIGUOUS entity 'e' should be an array pointer, assumed-shape, or assumed-rank
32a8654b44SPeter Klausler    entry e() result(r2)
33*33c27f28SPeter Klausler    r2 = 0
34a8654b44SPeter Klausler  end
35a8654b44SPeter Klausler  function fp()
36a8654b44SPeter Klausler    real, pointer, contiguous :: fp(:) ! ok
37*33c27f28SPeter Klausler    nullify(fp)
38a8654b44SPeter Klausler  end
39a8654b44SPeter Klauslerend
40