| /* { dg-do compile } */ |
| /* { dg-options "-fopenmp" } */ |
| |
| void |
| foo (void) |
| { |
| int i, j; |
| #pragma omp for ordered (1) |
| for (i = 0; i < 64; i++) |
| { |
| #pragma omp ordered depend (sink: i + 1) /* { dg-warning "'depend' clause with 'sink' modifier waiting for lexically later iteration" } */ |
| #pragma omp ordered depend (source) |
| } |
| #pragma omp for ordered (1) |
| for (i = 63; i >= 0; i--) |
| { |
| #pragma omp ordered depend (sink: i - 1) /* { dg-warning "'depend' clause with 'sink' modifier waiting for lexically later iteration" } */ |
| #pragma omp ordered depend (source) |
| } |
| #pragma omp for ordered (2) collapse (2) |
| for (i = 0; i < 64; i++) |
| for (j = 0; j < 64; j++) |
| { |
| #pragma omp ordered depend (sink: i + 1, j - 2) /* { dg-warning "'depend' clause with 'sink' modifier waiting for lexically later iteration" } */ |
| #pragma omp ordered depend (source) |
| } |
| #pragma omp for ordered (2) collapse (2) |
| for (i = 63; i >= 0; --i) |
| for (j = 0; j < 64; j++) |
| { |
| #pragma omp ordered depend (sink: i - 2, j - 2) /* { dg-warning "'depend' clause with 'sink' modifier waiting for lexically later iteration" } */ |
| #pragma omp ordered depend (source) |
| } |
| #pragma omp for ordered (2) collapse (2) |
| for (i = 0; i < 64; i++) |
| for (j = 0; j < 64; j++) |
| { |
| #pragma omp ordered depend (sink: i - 1, j + 2) |
| #pragma omp ordered depend (source) |
| } |
| #pragma omp for ordered (2) collapse (2) |
| for (i = 63; i >= 0; --i) |
| for (j = 0; j < 64; j++) |
| { |
| #pragma omp ordered depend (sink: i + 2, j + 2) |
| #pragma omp ordered depend (source) |
| } |
| #pragma omp for ordered (1) |
| for (i = 0; i < 64; i += 2) |
| { |
| #pragma omp ordered depend (sink: i - 1) /* { dg-warning "'depend' clause with 'sink' modifier refers to iteration never in the iteration space" } */ |
| #pragma omp ordered depend (source) |
| } |
| } |