1 void
foo(int & a,int (& b)[100],int & n)2 foo (int &a, int (&b)[100], int &n)
3 {
4 #pragma acc enter data copyin (a, b) async wait
5 #pragma acc enter data create (b[20:30]) async wait
6 
7 #pragma acc enter data (a)
8   /* { dg-error "expected '#pragma acc' clause before '\\\(' token" "" { target *-*-* } .-1 } */
9   /* { dg-error "has no data movement clause" "" { target *-*-* } .-2 } */
10 
11 #pragma acc enter data create (b(1:10)) /* { dg-error "expected '\\\)' before '\\\(' token" } */
12 #pragma acc exit data delete (a) if (0)
13 #pragma acc exit data copyout (b) if (a)
14 #pragma acc exit data delete (b)
15 #pragma acc enter /* { dg-error "expected 'data' after" } */
16 #pragma acc exit /* { dg-error "expected 'data' after" } */
17 #pragma acc enter data /* { dg-error "has no data movement clause" } */
18 #pragma acc exit data /* { dg-error "has no data movement clause" } */
19 #pragma acc enter Data /* { dg-error "expected 'data' after" } */
20 #pragma acc exit copyout (b) /* { dg-error "expected 'data' after" } */
21 }
22 
23 template<typename T>
24 void
foo(T & a,T (& b)[100],T & n)25 foo (T &a, T (&b)[100], T &n)
26 {
27 #pragma acc enter data copyin (a, b) async wait
28 #pragma acc enter data create (b[20:30]) async wait
29 
30 #pragma acc enter data (a)
31   /* { dg-error "expected '#pragma acc' clause before '\\\(' token" "" { target *-*-* } .-1 } */
32   /* { dg-error "has no data movement clause" "" { target *-*-* } .-2 } */
33 
34 #pragma acc enter data create (b(1:10)) /* { dg-error "expected '\\\)' before '\\\(' token" } */
35 #pragma acc exit data delete (a) if (0)
36 #pragma acc exit data copyout (b) if (a)
37 #pragma acc exit data delete (b)
38 #pragma acc enter /* { dg-error "expected 'data' after" } */
39 #pragma acc exit /* { dg-error "expected 'data' after" } */
40 #pragma acc enter data /* { dg-error "has no data movement clause" } */
41 #pragma acc exit data /* { dg-error "has no data movement clause" } */
42 #pragma acc enter Data /* { dg-error "expected 'data' after" } */
43 #pragma acc exit copyout (b) /* { dg-error "expected 'data' after" } */
44 }
45