blob: 0749ea44db659b2e26c2973111101cfe53f29c89 [file] [edit]
! RUN: %python %S/../test_errors.py %s %flang_fc1 %openmp_flags
! Verify that array sections and array elements in LINEAR clause are rejected.
! The LINEAR clause requires a scalar variable name (OpenMP 4.5 ยง2.15.3.7).
subroutine test_array_section_in_linear()
implicit none
integer :: i
integer, dimension(0:99, -99:10, 200) :: a, b, c
!$omp parallel
!ERROR: An array element cannot appear in a LINEAR clause
!$omp do linear(a(:,1,1))
do i = 0, 99
c(i, 1, 1) = a(i, 1, 1) + b(i, 1, 1)
end do
!$omp end do
!$omp end parallel
end subroutine
subroutine test_array_element_in_linear()
implicit none
integer :: i
integer :: arr(10)
!$omp parallel
!ERROR: An array element cannot appear in a LINEAR clause
!$omp do linear(arr(1))
do i = 1, 10
arr(i) = i
end do
!$omp end do
!$omp end parallel
end subroutine
subroutine test_structure_component_in_linear()
implicit none
integer :: i
type :: my_type
integer :: field
end type
type(my_type) :: obj
!$omp parallel
!ERROR: A structure component cannot appear in a LINEAR clause
!$omp do linear(obj%field)
do i = 1, 10
end do
!$omp end do
!$omp end parallel
end subroutine
subroutine test_valid_scalar_in_linear()
implicit none
integer :: i, j
!$omp parallel
!$omp do linear(j)
do i = 1, 10
j = i
end do
!$omp end do
!$omp end parallel
end subroutine