| /* PR middle-end/108459 */ |
| |
| char a[17][17]; |
| |
| __attribute__((noipa)) void |
| foo (int x, int y) |
| { |
| #pragma omp for collapse(2) |
| for (int i = 1; i <= 16; i++) |
| for (int j = i * x + y; j <= 16; j++) |
| a[i][j] = 1; |
| } |
| |
| int |
| main () |
| { |
| #pragma omp parallel |
| foo (1, 1); |
| for (int i = 0; i <= 16; i++) |
| for (int j = 0; j <= 16; j++) |
| if (i >= 1 && j >= i + 1) |
| { |
| if (a[i][j] != 1) |
| __builtin_abort (); |
| a[i][j] = 0; |
| } |
| else if (a[i][j]) |
| __builtin_abort (); |
| #pragma omp parallel |
| foo (2, -2); |
| for (int i = 0; i <= 16; i++) |
| for (int j = 0; j <= 16; j++) |
| if (i >= 1 && j >= 2 * i - 2) |
| { |
| if (a[i][j] != 1) |
| __builtin_abort (); |
| } |
| else if (a[i][j]) |
| __builtin_abort (); |
| return 0; |
| } |