// PR c++/108286 // { dg-do run } struct S { int foo () { int res = 0; #pragma omp target map(size, ptr[:size], res) nowait res = ptr[size - 1]; #pragma omp taskwait return res; } unsigned size; int *ptr; }; int main () { S s; int buf[5]; s.size = 5; s.ptr = buf; buf[4] = 42; if (s.foo () != 42) __builtin_abort (); }