1 /* { dg-do compile } */
3 /* This test case is expected to fail due to errors. */
8 int a
[N
][M
], b
[N
][M
], c
[N
][M
];
10 extern void dostuff (int, int);
12 /* good1 and good2 should compile without error. */
19 #pragma omp parallel for simd collapse(2) reduction(inscan,+: x) private(shift)
20 for (int i
= 0; i
< N
; i
++)
22 for (int j
= 0; j
< M
; j
++)
26 #pragma omp scan inclusive(x)
39 #pragma omp parallel for simd collapse(2) reduction(inscan,+: x) private(shift)
40 for (int i
= 0; i
< N
; i
++)
42 for (int j
= 0; j
< M
; j
++)
46 #pragma omp scan exclusive(x)
53 /* Adding intervening code should trigger an error. */
61 #pragma omp parallel for simd collapse(2) reduction(inscan,+: x) private(shift)
62 for (int i
= 0; i
< N
; i
++) /* { dg-error "inner loops must be perfectly nested" } */
65 for (int j
= 0; j
< M
; j
++)
69 #pragma omp scan inclusive(x)
82 #pragma omp parallel for simd collapse(2) reduction(inscan,+: x) private(shift)
83 for (int i
= 0; i
< N
; i
++) /* { dg-error "inner loops must be perfectly nested" } */
85 for (int j
= 0; j
< M
; j
++)
89 #pragma omp scan exclusive(x)