1*330d8983SJohannes Doerfert // RUN: %libomptarget-compilexx-run-and-check-generic 2*330d8983SJohannes Doerfert 3*330d8983SJohannes Doerfert #include <omp.h> 4*330d8983SJohannes Doerfert #include <stdio.h> 5*330d8983SJohannes Doerfert main()6*330d8983SJohannes Doerfertint main() { 7*330d8983SJohannes Doerfert struct S { 8*330d8983SJohannes Doerfert int i; 9*330d8983SJohannes Doerfert int j; 10*330d8983SJohannes Doerfert } s; 11*330d8983SJohannes Doerfert s.i = 20; 12*330d8983SJohannes Doerfert s.j = 30; 13*330d8983SJohannes Doerfert #pragma omp target data map(tofrom : s) 14*330d8983SJohannes Doerfert { 15*330d8983SJohannes Doerfert #pragma omp target map(from : s.i, s.j) 16*330d8983SJohannes Doerfert { 17*330d8983SJohannes Doerfert s.i = 21; 18*330d8983SJohannes Doerfert s.j = 31; 19*330d8983SJohannes Doerfert } 20*330d8983SJohannes Doerfert } 21*330d8983SJohannes Doerfert if (s.i == 21 && s.j == 31) 22*330d8983SJohannes Doerfert printf("PASS 1\n"); 23*330d8983SJohannes Doerfert // CHECK: PASS 1 24*330d8983SJohannes Doerfert 25*330d8983SJohannes Doerfert struct T { 26*330d8983SJohannes Doerfert int a; 27*330d8983SJohannes Doerfert int b; 28*330d8983SJohannes Doerfert int c; 29*330d8983SJohannes Doerfert int d; 30*330d8983SJohannes Doerfert int i; 31*330d8983SJohannes Doerfert int j; 32*330d8983SJohannes Doerfert } t; 33*330d8983SJohannes Doerfert t.a = 10; 34*330d8983SJohannes Doerfert t.i = 20; 35*330d8983SJohannes Doerfert t.j = 30; 36*330d8983SJohannes Doerfert #pragma omp target data map(from : t.i, t.j) 37*330d8983SJohannes Doerfert { 38*330d8983SJohannes Doerfert #pragma omp target map(from : t.a) 39*330d8983SJohannes Doerfert { 40*330d8983SJohannes Doerfert t.a = 11; 41*330d8983SJohannes Doerfert t.i = 21; 42*330d8983SJohannes Doerfert t.j = 31; 43*330d8983SJohannes Doerfert } 44*330d8983SJohannes Doerfert } 45*330d8983SJohannes Doerfert if (t.a == 11 && t.i == 21 && t.j == 31) 46*330d8983SJohannes Doerfert printf("PASS 2\n"); 47*330d8983SJohannes Doerfert // CHECK: PASS 2 48*330d8983SJohannes Doerfert return 0; 49*330d8983SJohannes Doerfert } 50