https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103708
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
The following is also rejected:
int **a;
#pragma omp target enter data map(to:a[1:2])
#pragma omp target data use_device_addr(a[1:2])
{
int *p = &a[1];
#pragma omp target has_device_addr(a[1:2])
{ /* ... */ }
While 'use_device_addr' doesn't support arrays at all,
the 'has_device_addr' feature is partially implemented
(syntax of comment 0 is supported), but not using pointer arrays:
bar.c:10:39: error: ‘*(a + 8)’ is not a variable in clause ‘has_device_addr’
10 | #pragma omp target has_device_addr(a[1:2])