1  /* PR c++/88203 */
       2  /* { dg-do compile } */
       3  /* { dg-additional-options "-std=c99" { target c } } */
       4  /* { dg-additional-options "-std=c++11" { target c++ } } */
       5  
       6  void foo (const char *);
       7  #pragma omp declare target to (foo)
       8  
       9  void
      10  f1 (void)
      11  {
      12    #pragma omp parallel for lastprivate (__func__)	/* { dg-error "'__func__' is predetermined 'shared' for 'lastprivate'" } */
      13    for (int i = 0; i < 2; i++)
      14      foo (__func__);
      15    #pragma omp parallel private (__func__)		/* { dg-error "'__func__' is predetermined 'shared' for 'private'" } */
      16    foo (__func__);
      17  }
      18  
      19  void
      20  f2 (void)
      21  {
      22    foo (__func__);
      23    #pragma omp parallel default(none) private (__func__)		/* { dg-error "'__func__' is predetermined 'shared' for 'private'" } */
      24    foo (__func__);
      25    #pragma omp parallel for default(none) lastprivate (__func__)	/* { dg-error "'__func__' is predetermined 'shared' for 'lastprivate'" } */
      26    for (int i = 0; i < 2; i++)
      27      foo (__func__);
      28  }