| /* { dg-do compile } */ |
| /* { dg-options "-fopenmp" } */ |
| |
| void |
| f1 (void) |
| { |
| int i, j; |
| #pragma omp for |
| for (i = 0; i < 3; i++) |
| { |
| #pragma omp for /* { dg-error "may not be closely nested" } */ |
| for (j = 0; j < 3; j++) |
| ; |
| #pragma omp sections /* { dg-error "may not be closely nested" } */ |
| { |
| ; |
| #pragma omp section |
| ; |
| } |
| #pragma omp single /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp master /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp masked /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp barrier /* { dg-error "may not be closely nested" } */ |
| #pragma omp scope /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp sections |
| { |
| #pragma omp for /* { dg-error "may not be closely nested" } */ |
| for (j = 0; j < 3; j++) |
| ; |
| } |
| #pragma omp sections |
| { |
| #pragma omp sections /* { dg-error "may not be closely nested" } */ |
| { |
| ; |
| #pragma omp section |
| ; |
| } |
| } |
| #pragma omp sections |
| { |
| #pragma omp single /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp sections |
| { |
| #pragma omp master /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp sections |
| { |
| #pragma omp masked /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp sections |
| { |
| #pragma omp scope /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp sections |
| { |
| #pragma omp section |
| ; |
| } |
| #pragma omp sections |
| { |
| #pragma omp section |
| #pragma omp for /* { dg-error "may not be closely nested" } */ |
| for (j = 0; j < 3; j++) |
| ; |
| } |
| #pragma omp sections |
| { |
| #pragma omp section |
| #pragma omp sections /* { dg-error "may not be closely nested" } */ |
| { |
| ; |
| #pragma omp section |
| ; |
| } |
| } |
| #pragma omp sections |
| { |
| #pragma omp section |
| #pragma omp single /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp sections |
| { |
| #pragma omp section |
| #pragma omp master /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp section |
| #pragma omp masked /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp sections |
| { |
| #pragma omp section |
| #pragma omp scope /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp single |
| { |
| #pragma omp for /* { dg-error "may not be closely nested" } */ |
| for (j = 0; j < 3; j++) |
| ; |
| #pragma omp sections /* { dg-error "may not be closely nested" } */ |
| { |
| ; |
| #pragma omp section |
| ; |
| } |
| #pragma omp single /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp master /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp masked /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp barrier /* { dg-error "may not be closely nested" } */ |
| #pragma omp scope /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp master |
| { |
| #pragma omp for /* { dg-error "may not be closely nested" } */ |
| for (j = 0; j < 3; j++) |
| ; |
| #pragma omp sections /* { dg-error "may not be closely nested" } */ |
| { |
| ; |
| #pragma omp section |
| ; |
| } |
| #pragma omp single /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp master |
| ; |
| #pragma omp barrier /* { dg-error "may not be closely nested" } */ |
| #pragma omp scope /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp masked filter (1) |
| { |
| #pragma omp for /* { dg-error "may not be closely nested" } */ |
| for (j = 0; j < 3; j++) |
| ; |
| #pragma omp sections /* { dg-error "may not be closely nested" } */ |
| { |
| ; |
| #pragma omp section |
| ; |
| } |
| #pragma omp single /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp master |
| ; |
| #pragma omp barrier /* { dg-error "may not be closely nested" } */ |
| #pragma omp scope /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp task |
| { |
| #pragma omp for /* { dg-error "may not be closely nested" } */ |
| for (j = 0; j < 3; j++) |
| ; |
| #pragma omp sections /* { dg-error "may not be closely nested" } */ |
| { |
| ; |
| #pragma omp section |
| ; |
| } |
| #pragma omp single /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp master /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp masked /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp barrier /* { dg-error "may not be closely nested" } */ |
| #pragma omp scope /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| #pragma omp parallel |
| { |
| #pragma omp for |
| for (j = 0; j < 3; j++) |
| ; |
| #pragma omp sections |
| { |
| ; |
| #pragma omp section |
| ; |
| } |
| #pragma omp single |
| ; |
| #pragma omp master |
| ; |
| #pragma omp masked |
| ; |
| #pragma omp barrier |
| #pragma omp scope |
| ; |
| #pragma omp scope |
| { |
| #pragma omp scope |
| ; |
| } |
| } |
| #pragma omp scope |
| { |
| #pragma omp for |
| for (j = 0; j < 3; j++) |
| ; |
| #pragma omp sections |
| { |
| ; |
| #pragma omp section |
| ; |
| } |
| #pragma omp single |
| ; |
| #pragma omp master |
| ; |
| #pragma omp masked |
| ; |
| #pragma omp barrier |
| #pragma omp scope |
| ; |
| #pragma omp scope |
| { |
| #pragma omp scope |
| ; |
| } |
| } |
| } |
| |
| void |
| f2 (void) |
| { |
| int i, j; |
| #pragma omp ordered |
| { |
| #pragma omp for /* { dg-error "may not be closely nested" } */ |
| for (j = 0; j < 3; j++) |
| ; |
| #pragma omp sections /* { dg-error "may not be closely nested" } */ |
| { |
| ; |
| #pragma omp section |
| ; |
| } |
| #pragma omp single /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp master |
| ; |
| #pragma omp masked |
| ; |
| #pragma omp barrier /* { dg-error "may not be closely nested" } */ |
| #pragma omp scope /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| } |
| |
| void |
| f3 (void) |
| { |
| #pragma omp critical |
| { |
| #pragma omp ordered /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp scope /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| } |
| |
| void |
| f4 (void) |
| { |
| #pragma omp task |
| { |
| #pragma omp ordered /* { dg-error "may not be closely nested" } */ |
| ; |
| #pragma omp scope /* { dg-error "may not be closely nested" } */ |
| ; |
| } |
| } |
| |
| void |
| f5 (void) |
| { |
| int i; |
| #pragma omp for |
| for (i = 0; i < 10; i++) |
| { |
| #pragma omp ordered /* { dg-error "must be closely nested" } */ |
| ; |
| } |
| #pragma omp for ordered |
| for (i = 0; i < 10; i++) |
| { |
| #pragma omp ordered |
| ; |
| } |
| } |
| |
| void |
| f6 (void) |
| { |
| #pragma omp critical (foo) |
| #pragma omp critical (bar) |
| ; |
| #pragma omp critical |
| #pragma omp critical (baz) |
| ; |
| } |
| |
| void |
| f7 (void) |
| { |
| #pragma omp critical (foo2) |
| #pragma omp critical |
| ; |
| #pragma omp critical (bar) |
| #pragma omp critical (bar) /* { dg-error "may not be nested" } */ |
| ; |
| #pragma omp critical |
| #pragma omp critical /* { dg-error "may not be nested" } */ |
| ; |
| } |