1 /* { dg-do compile } */
2 
3 void
foo(void)4 foo (void)
5 {
6   const int N = 32;
7   float x[N], y[N];
8   int flag = 0;
9 
10   if (flag)
11 #pragma acc update host (x[0:N]) /* { dg-error "may only be used in compound statements" } */
12   flag = 1;
13 
14   while (flag)
15 #pragma acc update host (x[0:N]) /* { dg-error "may only be used in compound statements" } */
16   flag = 2;
17 
18 #pragma acc enter data create (x[0:N])
19   {
20     if (flag)
21 #pragma acc update host (x[0:N]) /* { dg-error "may only be used in compound statements" } */
22     flag = 1;
23   }
24 
25   if (flag)
26   while (flag)
27 #pragma acc update host (x[0:N]) /* { dg-error "may only be used in compound statements" } */
28   flag = 2;
29 
30   if (flag)
31 #pragma acc wait /* { dg-error "may only be used in compound statements" } */
32   flag = 1;
33 
34   while (flag)
35 #pragma acc wait /* { dg-error "may only be used in compound statements" } */
36   flag = 2;
37 
38 #pragma acc enter data create (x[0:N])
39   {
40     if (flag)
41 #pragma acc wait /* { dg-error "may only be used in compound statements" } */
42     flag = 1;
43   }
44 
45   if (flag)
46 #pragma acc enter data create (x[0:N]) /* { dg-error "may only be used in compound statements" } */
47   flag = 1;
48 
49   while (flag)
50 #pragma acc enter data create (x[0:N]) /* { dg-error "may only be used in compound statements" } */
51   flag = 2;
52 
53 #pragma acc enter data create (x[0:N])
54   {
55     if (flag)
56 #pragma acc enter data create (y[0:N]) /* { dg-error "may only be used in compound statements" } */
57     flag = 1;
58   }
59 
60   if (flag)
61 #pragma acc exit data delete (x[0:N]) /* { dg-error "may only be used in compound statements" } */
62   flag = 1;
63 
64   while (flag)
65 #pragma acc exit data delete (x[0:N]) /* { dg-error "may only be used in compound statements" } */
66   flag = 2;
67 
68 #pragma acc enter data create (x[0:N])
69   {
70     if (flag)
71 #pragma acc exit data delete (x[0:N]) /* { dg-error "may only be used in compound statements" } */
72     flag = 1;
73   }
74 }
75