| // { dg-options "-fopenmp" } |
| |
| void bar (void *); |
| |
| __attribute__((noinline, noclone)) void |
| foo (void *qx, void *rx, void *sx, int n) |
| { |
| unsigned short (*q)[n], (*r)[n], (*s)[n], (*p)[n]; |
| q = (typeof (q)) qx; |
| r = (typeof (r)) rx; |
| s = (typeof (s)) sx; |
| int t = 1; |
| int o = -1; |
| #pragma omp for |
| for (p = q; p != r; p += t) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = s; p != r; p += o) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = q; p != r; p = p + t) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = s; p != r; p = p + o) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = q; p != r; p = t + p) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = s; p != r; p = o + p) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = q; p != r; p += 2) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = s; p != r; p -= 2) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = q; p != r; p = p + 3) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = s; p != r; p = p - 3) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = q; p != r; p = 4 + p) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| #pragma omp for |
| for (p = s; p != r; p = -5 + p) /* { dg-error "increment is not constant 1 or -1" } */ |
| bar (p); |
| } |