1// clang-format off
2// RUN: %libomptarget-compilexx-generic -Wno-openmp-mapping && %libomptarget-run-generic
3
4#include <assert.h>
5
6// clang-format on
7
8struct Inner {
9 int *data;
10 Inner(int size) { data = new int[size](); }
11 ~Inner() { delete[] data; }
12};
13#pragma omp declare mapper(Inner i) map(i, i.data[0 : 10])
14
15struct Outer {
16 Inner i;
17 Outer() : i(10) {}
18};
19#pragma omp declare mapper(Outer o) map(o, o.i)
20
21int main() {
22 Outer o;
23#pragma omp target map(tofrom : o)
24 {
25 o.i.data[0] = 42;
26 }
27 assert(o.i.data[0] == 42);
28 return 0;
29}
30

source code of offload/test/mapping/duplicate_mappings_2.cpp