Krzysztof Parzyszek 12cb376321
[flang][OpenMP] Diagnose whole assumed-size arrays on two clauses (#172510)
OpenMP 6.0 allows whole assumed-size arrays to appear as list items in
MAP and USE_DEVICE_ADDR clauses. This was not allowed in prior spec
versions.
2025-12-17 12:03:35 -06:00

44 lines
910 B
Fortran

! RUN: %python %S/../test_errors.py %s %flang -fopenmp -fopenmp-version=52
! Check OpenMP MAP clause validity. Section 5.8.3 OpenMP 5.2.
subroutine sb(arr)
implicit none
real(8) :: arr(*)
real :: a
integer:: b, c, i
common /var/ b, c
!ERROR: Whole assumed-size arrays are not allowed on MAP clause
!$omp target map(arr)
do i = 1, 100
a = 3.14
enddo
!$omp end target
!ERROR: Assumed-size array 'arr' must have explicit final subscript upper bound value
!$omp target map(arr(:))
do i = 1, 100
a = 3.14
enddo
!$omp end target
!$omp target map(arr(3:5))
do i = 1, 100
a = 3.14
enddo
!$omp end target
!$omp target map(tofrom: /var/)
b = 1
c = 2
!$omp end target
end subroutine
subroutine sb1
integer :: xx
integer :: a
!ERROR: Name 'xx' should be a mapper name
!$omp target map(mapper(xx), from:a)
!$omp end target
end subroutine sb1