1 /* { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } } */
13 test (unsigned variant
)
20 acc_copyin (&s
, sizeof (s
));
21 acc_create (s
.data
, N
* sizeof (int));
23 for (int i
= 0; i
< 20; i
++)
25 if ((variant
+ i
) % 1)
27 #pragma acc enter data attach(s.data)
30 acc_attach ((void **) &s
.data
);
32 if ((variant
+ i
) % 2)
34 #pragma acc exit data detach(s.data)
37 acc_detach ((void **) &s
.data
);
40 assert (acc_is_present (arr
, N
* sizeof (int)));
41 assert (acc_is_present (&s
, sizeof (s
)));
43 acc_delete (arr
, N
* sizeof (int));
45 assert (!acc_is_present (arr
, N
* sizeof (int)));
47 acc_copyout (&s
, sizeof (s
));
49 assert (!acc_is_present (&s
, sizeof (s
)));
50 assert (s
.data
== arr
);
54 main (int argc
, char *argv
[])
56 for (unsigned variant
= 0; variant
< 4; ++variant
)