void foo (void) { int i; #pragma omp taskloop for (i = 0; i < 64; i++) { int j; #pragma omp for /* { dg-error "region may not be closely nested inside of" } */ for (j = 0; j < 10; j++) ; #pragma omp single /* { dg-error "region may not be closely nested inside of" } */ ; #pragma omp sections /* { dg-error "region may not be closely nested inside of" } */ { #pragma omp section ; } #pragma omp barrier /* { dg-error "region may not be closely nested inside of" } */ #pragma omp master /* { dg-error "region may not be closely nested inside of" } */ ; #pragma omp masked /* { dg-error "region may not be closely nested inside of" } */ ; #pragma omp scope /* { dg-error "region may not be closely nested inside of" } */ ; #pragma omp ordered /* { dg-error "region may not be closely nested inside of" } */ ; #pragma omp ordered threads /* { dg-error "region may not be closely nested inside of" } */ ; #pragma omp ordered simd threads /* { dg-error ".ordered. .simd. must be closely nested inside .simd. region" } */ ; #pragma omp simd for (j = 0; j < 10; j++) #pragma omp ordered simd ; #pragma omp critical { #pragma omp simd for (j = 0; j < 10; j++) #pragma omp ordered simd ; } } #pragma omp taskloop for (i = 0; i < 64; i++) #pragma omp parallel { int j; #pragma omp for for (j = 0; j < 10; j++) ; #pragma omp single ; #pragma omp sections { #pragma omp section ; } #pragma omp barrier #pragma omp master ; #pragma omp masked ; #pragma omp scope ; #pragma omp ordered /* { dg-error ".ordered. region must be closely nested inside a loop region with an .ordered. clause" } */ ; #pragma omp ordered threads /* { dg-error ".ordered. region must be closely nested inside a loop region with an .ordered. clause" } */ ; #pragma omp simd for (j = 0; j < 10; j++) #pragma omp ordered simd ; #pragma omp critical { #pragma omp simd for (j = 0; j < 10; j++) #pragma omp ordered simd ; } } #pragma omp taskloop for (i = 0; i < 64; i++) #pragma omp target { int j; #pragma omp for for (j = 0; j < 10; j++) ; #pragma omp single ; #pragma omp sections { #pragma omp section ; } #pragma omp barrier #pragma omp master ; #pragma omp masked ; #pragma omp scope ; #pragma omp ordered /* { dg-error ".ordered. region must be closely nested inside a loop region with an .ordered. clause" } */ ; #pragma omp ordered threads /* { dg-error ".ordered. region must be closely nested inside a loop region with an .ordered. clause" } */ ; #pragma omp simd for (j = 0; j < 10; j++) #pragma omp ordered simd ; #pragma omp critical { #pragma omp simd for (j = 0; j < 10; j++) #pragma omp ordered simd ; } } #pragma omp ordered { #pragma omp ordered /* { dg-error "region may not be closely nested inside of" } */ ; } #pragma omp ordered threads { #pragma omp ordered /* { dg-error "region may not be closely nested inside of" } */ ; } #pragma omp ordered { #pragma omp ordered threads /* { dg-error "region may not be closely nested inside of" } */ ; } #pragma omp ordered threads { #pragma omp ordered threads /* { dg-error "region may not be closely nested inside of" } */ ; } #pragma omp critical { #pragma omp ordered simd /* { dg-error ".ordered. .simd. must be closely nested inside .simd. region" } */ ; } #pragma omp for ordered for (i = 0; i < 64; i++) #pragma omp parallel { #pragma omp ordered threads /* { dg-error ".ordered. region must be closely nested inside a loop region with an .ordered. clause" } */ ; } #pragma omp for ordered for (i = 0; i < 64; i++) #pragma omp parallel { #pragma omp ordered /* { dg-error ".ordered. region must be closely nested inside a loop region with an .ordered. clause" } */ ; } #pragma omp for ordered(1) for (i = 0; i < 64; i++) #pragma omp parallel { #pragma omp ordered depend(source) /* { dg-error ".ordered. construct with .depend. clause must be closely nested inside a loop with .ordered. clause" } */ #pragma omp ordered depend(sink: i - 1) /* { dg-error ".ordered. construct with .depend. clause must be closely nested inside a loop with .ordered. clause" } */ } #pragma omp for ordered(1) for (i = 0; i < 64; i++) #pragma omp parallel { #pragma omp ordered doacross(source:) /* { dg-error ".ordered. construct with .doacross. clause must be closely nested inside a loop with .ordered. clause" } */ #pragma omp ordered doacross(sink: i - 1) /* { dg-error ".ordered. construct with .doacross. clause must be closely nested inside a loop with .ordered. clause" } */ } }