https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120753

--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> ---
BTW: Workaround:

  double *tmp = u.t;
  #pragma omp target is_device_ptr(tmp)
    tmp[i] = 20;

Additionally, a simple 'map(u)' will not map pointer members, keeping the
address the same such that effectively* no 'is_device_ptr' is needed.
Doing, e.g., map(u.A, u.t[:A]) would map the pointer do the attachment.

[* there are few assumptions like sizeof(*void) being the same,
'unified_address' also does not harm, and I think there is no wording for it,
but in practice is should work.]

Reply via email to