(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c/
appendix-a/
a.15.1.c
       1  /* { dg-do run } */
       2  /* { dg-additional-options "-Wno-deprecated-declarations" } */
       3  
       4  #include <omp.h>
       5  #include <stdio.h>
       6  
       7  void
       8  work (int n)
       9  {
      10    printf ("[%d of %d], nested = %d, n = %d\n", omp_get_thread_num (), omp_get_num_threads(), omp_get_nested (), n);
      11  }
      12  
      13  void
      14  sub3 (int n)
      15  {
      16    work (n);
      17  #pragma omp barrier
      18    work (n);
      19  }
      20  
      21  void
      22  sub2 (int k)
      23  {
      24  #pragma omp parallel shared(k)
      25    sub3 (k);
      26  }
      27  
      28  void
      29  sub1 (int n)
      30  {
      31    int i;
      32  #pragma omp parallel private(i) shared(n)
      33    {
      34  #pragma omp for
      35      for (i = 0; i < n; i++)
      36        sub2 (i);
      37    }
      38  }
      39  int
      40  main ()
      41  {
      42    sub1 (2);
      43    sub2 (15);
      44    sub3 (20);
      45    return 0;
      46  }