1  int omp_all_memory;			/* { dg-error "expected" } */
       2  
       3  void
       4  foo (void)
       5  {
       6    int p = (&omp_all_memory)[0];		/* { dg-error "'omp_all_memory' may only be used in OpenMP 'depend' clause" } */
       7  }
       8  
       9  void
      10  bar (void)
      11  {
      12    int *omp_all_memory;			/* { dg-error "expected" } */
      13  }
      14  
      15  void
      16  baz (void)
      17  {
      18    struct omp_all_memory { int a; };	/* { dg-error "expected" } */
      19  }
      20  
      21  void
      22  qux (void)
      23  {
      24    union omp_all_memory { int a; };	/* { dg-error "expected" } */
      25  }
      26  
      27  void
      28  corge (void)
      29  {
      30    enum omp_all_memory { OAM; };		/* { dg-error "expected" } */
      31  }
      32  
      33  void
      34  garply (void)
      35  {
      36    enum E { omp_all_memory }; }		/* { dg-error "expected" } */
      37  
      38  void
      39  boo (void)
      40  {
      41    int x, y;
      42    #pragma omp task private (omp_all_memory)			/* { dg-error "expected" } */
      43    ;
      44    #pragma omp task depend(inout: *&omp_all_memory)		/* { dg-error "'omp_all_memory' may only be used in OpenMP 'depend' clause" } */
      45    ;
      46    #pragma omp task depend(inout: omp_all_memory[0])		/* { dg-error "'omp_all_memory' may only be used in OpenMP 'depend' clause" } */
      47    ;
      48    #pragma omp task depend(in: omp_all_memory)			/* { dg-error "'omp_all_memory' used with 'depend' kind other than 'out' or 'inout'" } */
      49    ;
      50    #pragma omp task depend(mutexinoutset: omp_all_memory)	/* { dg-error "'omp_all_memory' used with 'depend' kind other than 'out' or 'inout'" } */
      51    ;
      52    #pragma omp task depend(inoutset: omp_all_memory)		/* { dg-error "'omp_all_memory' used with 'depend' kind other than 'out' or 'inout'" } */
      53    ;
      54  }