aboutsummaryrefslogtreecommitdiff
blob: ed60f08d001edaf2155d814a48956d674feb3bb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
! RUN: %S/test_folding.sh %s %t %f18
! Test folding of IS_CONTIGUOUS on simply contiguous items (9.5.4)
! When IS_CONTIGUOUS() is constant, it's .TRUE.

module m
  real, target :: hosted(2)
 contains
  function f()
    real, pointer, contiguous :: f(:)
    f => hosted
  end function
  subroutine test(arr1, arr2, arr3, mat)
    real, intent(in) :: arr1(:), arr2(10), mat(10, 10)
    real, intent(in), contiguous :: arr3(:)
    real :: scalar
    logical, parameter :: test_isc01 = is_contiguous(0)
    logical, parameter :: test_isc02 = is_contiguous(scalar)
    logical, parameter :: test_isc03 = is_contiguous(scalar + scalar)
    logical, parameter :: test_isc04 = is_contiguous([0, 1, 2])
    logical, parameter :: test_isc05 = is_contiguous(arr1 + 1.0)
    logical, parameter :: test_isc06 = is_contiguous(arr2)
    logical, parameter :: test_isc07 = is_contiguous(mat)
    logical, parameter :: test_isc08 = is_contiguous(mat(1:10,1))
    logical, parameter :: test_isc09 = is_contiguous(arr2(1:10:1))
    logical, parameter :: test_isc10 = is_contiguous(arr3)
    logical, parameter :: test_isc11 = is_contiguous(f())
  end subroutine
end module