1*330d8983SJohannes Doerfert // RUN: %libomptarget-compile-run-and-check-generic 2*330d8983SJohannes Doerfert 3*330d8983SJohannes Doerfert #include <stdio.h> 4*330d8983SJohannes Doerfert 5*330d8983SJohannes Doerfert typedef struct { 6*330d8983SJohannes Doerfert double *dataptr; 7*330d8983SJohannes Doerfert int dummy1; 8*330d8983SJohannes Doerfert int dummy2; 9*330d8983SJohannes Doerfert } DV; 10*330d8983SJohannes Doerfert init(double vertexx[])11*330d8983SJohannes Doerfertvoid init(double vertexx[]) { 12*330d8983SJohannes Doerfert #pragma omp target map(vertexx[0 : 100]) 13*330d8983SJohannes Doerfert { 14*330d8983SJohannes Doerfert printf("In init: %lf, expected 100.0\n", vertexx[77]); 15*330d8983SJohannes Doerfert vertexx[77] = 77.0; 16*330d8983SJohannes Doerfert } 17*330d8983SJohannes Doerfert } 18*330d8983SJohannes Doerfert change(DV * dvptr)19*330d8983SJohannes Doerfertvoid change(DV *dvptr) { 20*330d8983SJohannes Doerfert #pragma omp target map(dvptr->dataptr[0 : 100]) 21*330d8983SJohannes Doerfert { 22*330d8983SJohannes Doerfert printf("In change: %lf, expected 77.0\n", dvptr->dataptr[77]); 23*330d8983SJohannes Doerfert dvptr->dataptr[77] += 1.0; 24*330d8983SJohannes Doerfert } 25*330d8983SJohannes Doerfert } 26*330d8983SJohannes Doerfert main()27*330d8983SJohannes Doerfertint main() { 28*330d8983SJohannes Doerfert double vertexx[100]; 29*330d8983SJohannes Doerfert vertexx[77] = 100.0; 30*330d8983SJohannes Doerfert 31*330d8983SJohannes Doerfert DV dv; 32*330d8983SJohannes Doerfert dv.dataptr = &vertexx[0]; 33*330d8983SJohannes Doerfert 34*330d8983SJohannes Doerfert #pragma omp target enter data map(to : vertexx[0 : 100]) 35*330d8983SJohannes Doerfert 36*330d8983SJohannes Doerfert init(vertexx); 37*330d8983SJohannes Doerfert change(&dv); 38*330d8983SJohannes Doerfert 39*330d8983SJohannes Doerfert #pragma omp target exit data map(from : vertexx[0 : 100]) 40*330d8983SJohannes Doerfert 41*330d8983SJohannes Doerfert // CHECK: Final: 78.0 42*330d8983SJohannes Doerfert printf("Final: %lf\n", vertexx[77]); 43*330d8983SJohannes Doerfert } 44