3 /* Test attach/detach operation with pointers and references to structs. */
5 typedef struct mystruct {
15 int a[10], c[10], e[10];
16 mystruct m = { .a = a, .c = c, .e = e };
20 #pragma acc parallel copy(m.a[0:10], m.b, m.c[0:10], m.d, m.e[0:10])
22 m.a[0] = m.c[0] + m.e[0];
24 assert (m.a[0] == 7 + 9);
32 mystruct *m = new mystruct;
39 #pragma acc parallel copy(m->a[0:10], m->b, m->c[0:10], m->d, m->e[0:10])
41 m->a[0] = m->c[0] + m->e[0];
43 assert (m->a[0] == 8 + 10);
63 #pragma acc parallel copy(n.a[0:10], n.b, n.c[0:10], n.d, n.e[0:10])
65 n.a[0] = n.c[0] + n.e[0];
67 assert (n.a[0] == 9 + 11);
75 int a[10], c[10], e[10];
76 mystruct *m = new mystruct;
86 #pragma acc parallel copy(n->a[0:10], n->c[0:10], n->e[0:10])
88 n->a[0] = n->c[0] + n->e[0];
90 assert (n->a[0] == 10 + 12);
94 int main (int argc, char *argv[])