1  struct S { int i : 1; int j : 4; long long k : 25; };
       2  void bar (struct S, int);
       3  #pragma omp declare target to (bar)
       4  
       5  void
       6  foo (struct S a, struct S b, struct S c, struct S d)
       7  {
       8    #pragma omp target map (a)
       9    bar (a, 0);
      10    #pragma omp target map (a) map (b.i)		/* { dg-error "bit-field .b.\(S::\|\)i. in .map. clause" } */
      11    bar (a, b.i);
      12    #pragma omp target map (a) map (b.j)		/* { dg-error "bit-field .b.\(S::\|\)j. in .map. clause" } */
      13    bar (a, b.j);
      14    #pragma omp target map (a) map (b.k)		/* { dg-error "bit-field .b.\(S::\|\)k. in .map. clause" } */
      15    bar (a, b.k);
      16    #pragma omp target data map (a) map (b.i)	/* { dg-error "bit-field .b.\(S::\|\)i. in .map. clause" } */
      17    {
      18      #pragma omp target enter data map (alloc: a) map (to: c.j)		/* { dg-error "bit-field .c.\(S::\|\)j. in .map. clause" } */
      19      #pragma omp target exit data map (release: a) map (from: d.k)	/* { dg-error "bit-field .d.\(S::\|\)k. in .map. clause" } */
      20    }
      21  }