| /* PR middle-end/87649 */ |
| |
| void |
| foo (void) |
| { |
| int i; |
| #pragma omp for ordered(1) |
| for (i = 0; i < 64; i++) |
| { |
| #pragma omp ordered |
| ; |
| } |
| #pragma omp for ordered(1) |
| for (i = 0; i < 64; i++) |
| { |
| #pragma omp ordered threads |
| ; |
| } |
| } |
| |
| void |
| bar (void) |
| { |
| int i; |
| #pragma omp for ordered |
| for (i = 0; i < 64; i++) |
| { |
| #pragma omp ordered depend(source) |
| #pragma omp ordered depend(sink: i - 1) |
| } |
| #pragma omp for ordered |
| for (i = 0; i < 64; i++) |
| { |
| #pragma omp ordered doacross(source:) |
| #pragma omp ordered doacross(sink: i - 1) |
| } |
| #pragma omp for |
| for (i = 0; i < 64; i++) |
| { |
| #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 |
| for (i = 0; i < 64; i++) |
| { |
| #pragma omp ordered /* { dg-error "'ordered' region must be closely nested inside a loop region with an 'ordered' clause" } */ |
| ; |
| } |
| #pragma omp for |
| for (i = 0; i < 64; i++) |
| { |
| #pragma omp ordered threads /* { dg-error "'ordered' region must be closely nested inside a loop region with an 'ordered' clause" } */ |
| ; |
| } |
| } |