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 default(none)
      13    foo (__func__);
      14  }
      15  
      16  void
      17  f2 (void)
      18  {
      19    #pragma omp parallel default(none) shared(__func__)
      20    foo (__func__);
      21  }
      22  
      23  void
      24  f3 (void)
      25  {
      26    #pragma omp parallel default(none) firstprivate(__func__)
      27    foo (__func__);
      28  }
      29  
      30  void
      31  f4 (void)
      32  {
      33    foo (__func__);
      34    #pragma omp parallel default(none)
      35    foo (__func__);
      36  }
      37  
      38  void
      39  f5 (void)
      40  {
      41    foo (__func__);
      42    #pragma omp parallel default(none) shared(__func__)
      43    foo (__func__);
      44  }
      45  
      46  void
      47  f6 (void)
      48  {
      49    foo (__func__);
      50    #pragma omp parallel default(none) firstprivate(__func__)
      51    foo (__func__);
      52  }
      53  
      54  void
      55  f7 (void)
      56  {
      57    #pragma omp target map(to: __func__)
      58    foo (__func__);
      59    #pragma omp task depend(inout:__func__)
      60    foo (__func__);
      61  }