1 /* { dg-do compile } */
2 /* { dg-options "-fopenmp-simd" } */
4 #pragma omp declare simd linear(a:1 + b) uniform(b) /* { dg-error ".linear. clause step .b \\+ 1. is neither constant nor a parameter" } */
6 #pragma omp declare simd linear(a:b + 1) uniform(b) /* { dg-error ".linear. clause step .b \\+ 1. is neither constant nor a parameter" } */
8 #pragma omp declare simd linear(a:2 * b) uniform(b) /* { dg-error ".linear. clause step .b \\* 2. is neither constant nor a parameter" } */
10 #pragma omp declare simd linear(a:b) /* { dg-error ".linear. clause step is a parameter .b. not specified in .uniform. clause" } */
11 int f4 (int a
, int b
);
12 #pragma omp declare simd linear(a:b) linear(b:1) /* { dg-error ".linear. clause step is a parameter .b. not specified in .uniform. clause" } */
13 int f5 (int a
, int b
);
14 #pragma omp declare simd linear(a:5 + 2 * 3)
15 int f6 (int a
, int b
);
17 #pragma omp declare simd linear(a:c) /* { dg-error ".linear. clause step .c. is neither constant nor a parameter" } */
18 int f7 (int a
, int b
);
19 #pragma omp declare simd linear(a:2 * c + 1) /* { dg-error ".linear. clause step .\[^\n\r]*. is neither constant nor a parameter" } */
20 int f8 (int a
, int b
);
21 #pragma omp declare simd linear(a:0.5) /* { dg-error ".linear. clause step expression must be integral" } */
22 int f9 (int a
, int b
);