/* PR preprocessor/57580 */ /* { dg-do compile } */ /* { dg-options "-fopenmp -save-temps -fdump-tree-gimple" } */ #define PS \ _Pragma("omp parallel num_threads(2)") \ { \ _Pragma("omp single") \ { \ ret = 0; \ } \ } int main () { int ret; _Pragma("omp parallel num_threads(3)") { _Pragma("omp single") { ret = 0; } } _Pragma("omp parallel num_threads(4)") { _Pragma("omp single") { ret = 0; } } { _Pragma("omp parallel num_threads(5)") { _Pragma("omp single") { ret = 0; } } } PS PS return ret; } /* { dg-final { scan-tree-dump-times "#pragma omp parallel\[^\n\r]*num_threads\\(2\\)" 2 "gimple" } } */ /* { dg-final { scan-tree-dump-times "#pragma omp parallel\[^\n\r]*num_threads\\(3\\)" 1 "gimple" } } */ /* { dg-final { scan-tree-dump-times "#pragma omp parallel\[^\n\r]*num_threads\\(4\\)" 1 "gimple" } } */ /* { dg-final { scan-tree-dump-times "#pragma omp parallel\[^\n\r]*num_threads\\(5\\)" 1 "gimple" } } */ /* { dg-final { scan-tree-dump-times "#pragma omp single" 5 "gimple" } } */