1 void foo(void)2foo (void) 3 { 4 int a, b[100]; 5 int n; 6 #pragma acc enter data copyin (a, b) async wait 7 #pragma acc enter data create (b[20:30]) async wait 8 #pragma acc enter data (a) /* { dg-error "expected '#pragma acc' clause before '\\\(' token" } */ 9 /* { dg-error "has no data movement clause" "" { target *-*-* } .-1 } */ 10 #pragma acc enter data create (b(1:10)) /* { dg-error "expected '\\\)' before '\\\(' token" } */ 11 #pragma acc exit data delete (a) if (0) 12 #pragma acc exit data copyout (b) if (a) 13 #pragma acc exit data delete (b) 14 #pragma acc enter /* { dg-error "expected 'data' after" } */ 15 #pragma acc exit /* { dg-error "expected 'data' after" } */ 16 #pragma acc enter data /* { dg-error "has no data movement clause" } */ 17 #pragma acc exit data /* { dg-error "no data movement clause" } */ 18 #pragma acc enter Data /* { dg-error "expected 'data' after" } */ 19 #pragma acc exit copyout (b) /* { dg-error "expected 'data' after" } */ 20 #pragma acc enter for /* { dg-error "expected 'data' after" } */ 21 #pragma acc enter data2 /* { dg-error "expected 'data' after" } */ 22 } 23 24