blob: 32e726bada937aa2f24673e084bef8db2b6990a1 [file] [log] [blame] [edit]
! RUN: %python %S/../test_errors.py %s %flang -fopenmp -fopenmp-version=52
subroutine affinity_substring()
character(len=7) :: a(8)
!ERROR: Substrings are not allowed on AFFINITY clause
!$omp task affinity(a(2)(2:4))
a(1) = "abcdefg"
!$omp end task
end subroutine
subroutine affinity_iterator_substring(n)
integer, intent(in) :: n
integer :: i
character(len=7) :: a(n)
!ERROR: Substrings are not allowed on AFFINITY clause
!$omp task affinity(iterator(i = 1:n) : a(i)(2:4))
a(1) = "abcdefg"
!$omp end task
end subroutine
subroutine affinity_iterator_section_component(n, m)
integer, intent(in) :: n, m
type t
integer :: x(10)
integer :: y
end type
type(t) :: a(10)
!ERROR: Subscripts of component 'x' of rank-1 derived type array have rank 1 but must all be scalar
!$omp task affinity(a(1:n)%x(1:m))
!$omp end task
!ERROR: If a list item is an array section, the last part-ref of the list item must have a section subscript list in AFFINITY clause
!$omp task affinity(a(1:n)%y)
!$omp end task
end subroutine
subroutine affinity_section_bad_stride(n)
integer, intent(in) :: n
integer :: a(n)
!ERROR: 'a' in AFFINITY clause must have a positive stride
!$omp task affinity(a(1:n:-1))
!$omp end task
end subroutine
subroutine affinity_section_zero_size(n)
integer, intent(in) :: n
integer :: a(n)
!ERROR: 'a' in AFFINITY clause is a zero size array section
!$omp task affinity(a(5:2))
!$omp end task
end subroutine
subroutine affinity_iterator_noninteger_iv()
integer :: x(10)
!ERROR: The iterator variable must be of integer type
!$omp task affinity(iterator(real :: i = 1:10): x(1))
!$omp end task
end subroutine
subroutine affinity_iterator_missing_begin()
integer :: x(10)
!ERROR: The begin and end expressions in iterator range-specification are mandatory
!$omp task affinity(iterator(integer :: i = :10:1): x(1))
!$omp end task
end subroutine
subroutine affinity_iterator_step_zero()
integer :: x(10)
!WARNING: The step value in the iterator range is 0
!$omp task affinity(iterator(integer :: i = 1:10:0): x(1))
!$omp end task
end subroutine
subroutine affinity_iterator_section_bad_stride(n)
integer, intent(in) :: n
integer :: a(n)
!ERROR: 'a' in AFFINITY clause must have a positive stride
!$omp task affinity(iterator(i = 1:n): a(i:n:-1))
!$omp end task
end subroutine
subroutine affinity_substring_like_single_index()
character(len=7) :: s
!PORTABILITY: The use of substrings in OpenMP argument lists has been disallowed since OpenMP 5.2.
!ERROR: Substrings must be in the form parent-string(lb:ub)
!$omp task affinity(s(2))
!$omp end task
end subroutine
subroutine affinity_substring_like_step()
character(len=7) :: s
!PORTABILITY: The use of substrings in OpenMP argument lists has been disallowed since OpenMP 5.2.
!ERROR: Cannot specify a step for a substring
!$omp task affinity(s(2:6:2))
!$omp end task
end subroutine
subroutine affinity_section_step_zero()
integer :: a(10)
!ERROR: 'a' in AFFINITY clause must have a positive stride
!ERROR: Stride of triplet must not be zero
!$omp task affinity(a(1:10:0))
!$omp end task
end subroutine