(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
gomp/
pr57580.c
       1  /* PR preprocessor/57580 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-fopenmp -save-temps -fdump-tree-gimple" } */
       4  
       5  #define PS \
       6    _Pragma("omp parallel num_threads(2)") \
       7    { \
       8      _Pragma("omp single") \
       9      { \
      10        ret = 0; \
      11      } \
      12    }
      13  
      14  int
      15  main ()
      16  {
      17    int ret;
      18    _Pragma("omp parallel num_threads(3)")
      19    {
      20      _Pragma("omp single")
      21      {
      22        ret = 0;
      23      }
      24    }
      25    _Pragma("omp parallel num_threads(4)") { _Pragma("omp single") { ret = 0; } }
      26    { _Pragma("omp parallel num_threads(5)") { _Pragma("omp single") { ret = 0; } } }
      27    PS
      28    PS
      29    return ret;
      30  }
      31  
      32  /* { dg-final { scan-tree-dump-times "#pragma omp parallel\[^\n\r]*num_threads\\(2\\)" 2 "gimple" } } */
      33  /* { dg-final { scan-tree-dump-times "#pragma omp parallel\[^\n\r]*num_threads\\(3\\)" 1 "gimple" } } */
      34  /* { dg-final { scan-tree-dump-times "#pragma omp parallel\[^\n\r]*num_threads\\(4\\)" 1 "gimple" } } */
      35  /* { dg-final { scan-tree-dump-times "#pragma omp parallel\[^\n\r]*num_threads\\(5\\)" 1 "gimple" } } */
      36  /* { dg-final { scan-tree-dump-times "#pragma omp single" 5 "gimple" } } */