diff options
Diffstat (limited to 'offload/test/mapping/low_alignment.c')
| -rw-r--r-- | offload/test/mapping/low_alignment.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/offload/test/mapping/low_alignment.c b/offload/test/mapping/low_alignment.c new file mode 100644 index 000000000000..615a5a9c3111 --- /dev/null +++ b/offload/test/mapping/low_alignment.c @@ -0,0 +1,49 @@ +// RUN: %libomptarget-compilexx-run-and-check-generic + +#include <omp.h> +#include <stdio.h> + +int main() { + struct S { + int i; + int j; + } s; + s.i = 20; + s.j = 30; +#pragma omp target data map(tofrom : s) + { +#pragma omp target map(from : s.i, s.j) + { + s.i = 21; + s.j = 31; + } + } + if (s.i == 21 && s.j == 31) + printf("PASS 1\n"); + // CHECK: PASS 1 + + struct T { + int a; + int b; + int c; + int d; + int i; + int j; + } t; + t.a = 10; + t.i = 20; + t.j = 30; +#pragma omp target data map(from : t.i, t.j) + { +#pragma omp target map(from : t.a) + { + t.a = 11; + t.i = 21; + t.j = 31; + } + } + if (t.a == 11 && t.i == 21 && t.j == 31) + printf("PASS 2\n"); + // CHECK: PASS 2 + return 0; +} |
