1 #include <assert.h>
2
3 struct str1 {
4 int a;
5 int b;
6 };
7
8 struct str2 {
9 int c;
10 int d;
11 struct str1 s;
12 };
13
14 int
15 main (int argc, char *argv[])
16 {
17 struct str2 t;
18
19 t.c = 1;
20 t.d = 2;
21 t.s.a = 3;
22 t.s.b = 4;
23
24 #pragma acc enter data copyin(t.s)
25
26 #pragma acc serial present(t.s) /* { dg-warning "using .vector_length \\(32\\)., ignoring 1" "" { target openacc_nvidia_accel_selected } } */
27 {
28 t.s.a = 5;
29 t.s.b = 6;
30 }
31
32 #pragma acc exit data copyout(t.s)
33
34 assert (t.s.a == 5);
35 assert (t.s.b == 6);
36
37 return 0;
38 }