https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89377
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I don't believe this is well defined in OpenMP 4.5, it is in 5.0, but eventhough GCC 9 implements parts of OpenMP 5.0, this part is not implemented. So, you need something like: int *p = h_array; before the #pragma omp target, map(tofrom:p[:N]) on the pragma and use p instead of h_array.