/* { dg-do compile } */ /* { dg-options "-fopenmp" } */ struct T { int c[3]; }; struct S { int a; struct T *b; struct T g; }; struct U { int a : 5; }; struct S d[10]; struct S *e[10]; struct S *f; struct S h; struct U i; void foo (void) { #pragma omp task depend(in: d[:2].b->c[2]) /* { dg-error "expected" } */ ; #pragma omp task depend(inout: d[1:].b->c[2]) /* { dg-error "expected" } */ ; #pragma omp task depend(out: d[0:1].a) /* { dg-error "expected" } */ ; #pragma omp task depend(in: e[3:2]->a) /* { dg-error "expected" } */ ; #pragma omp task depend(inout: e[2:2]->b->c) /* { dg-error "expected" } */ ; #pragma omp task depend(in: e[1]->b->c[2:1]) /* { dg-error "expected" } */ ; #pragma omp task depend(out: f + 0) /* { dg-error "not lvalue expression" } */ ; #pragma omp task depend(inout: f[0:1].a) /* { dg-error "expected" } */ ; #pragma omp task depend(inout: h.g.c[2:1]) /* { dg-error "expected" } */ ; #pragma omp task depend(in: i.a) /* { dg-error "bit-field '\[^\n\r]*' in 'depend' clause" } */ ; }