1  void
       2  foo (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