diff options
Diffstat (limited to 'clang/test/OpenMP/simd_misc_messages.c')
-rw-r--r-- | clang/test/OpenMP/simd_misc_messages.c | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/clang/test/OpenMP/simd_misc_messages.c b/clang/test/OpenMP/simd_misc_messages.c index 0800d22988c..6e2f81cee19 100644 --- a/clang/test/OpenMP/simd_misc_messages.c +++ b/clang/test/OpenMP/simd_misc_messages.c @@ -146,6 +146,80 @@ void test_safelen() for (i = 0; i < 16; ++i); } +void test_linear() +{ + int i; + // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}} + #pragma omp simd linear( + for (i = 0; i < 16; ++i) ; + // expected-error@+2 {{expected expression}} + // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}} + #pragma omp simd linear(, + for (i = 0; i < 16; ++i) ; + // expected-error@+2 {{expected expression}} + // expected-error@+1 {{expected expression}} + #pragma omp simd linear(,) + for (i = 0; i < 16; ++i) ; + // expected-error@+1 {{expected expression}} + #pragma omp simd linear() + for (i = 0; i < 16; ++i) ; + // expected-error@+1 {{expected expression}} + #pragma omp simd linear(int) + for (i = 0; i < 16; ++i) ; + // expected-error@+1 {{expected variable name}} + #pragma omp simd linear(0) + for (i = 0; i < 16; ++i) ; + // expected-error@+1 {{use of undeclared identifier 'x'}} + #pragma omp simd linear(x) + for (i = 0; i < 16; ++i) ; + // expected-error@+2 {{use of undeclared identifier 'x'}} + // expected-error@+1 {{use of undeclared identifier 'y'}} + #pragma omp simd linear(x, y) + for (i = 0; i < 16; ++i) ; + // expected-error@+3 {{use of undeclared identifier 'x'}} + // expected-error@+2 {{use of undeclared identifier 'y'}} + // expected-error@+1 {{use of undeclared identifier 'z'}} + #pragma omp simd linear(x, y, z) + for (i = 0; i < 16; ++i) ; + + int x, y; + // expected-error@+1 {{expected expression}} + #pragma omp simd linear(x:) + for (i = 0; i < 16; ++i) ; + // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}} + #pragma omp simd linear(x:,) + for (i = 0; i < 16; ++i) ; + #pragma omp simd linear(x:1) + for (i = 0; i < 16; ++i) ; + #pragma omp simd linear(x:2*2) + for (i = 0; i < 16; ++i) ; + // expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}} + #pragma omp simd linear(x:1,y) + for (i = 0; i < 16; ++i) ; + // expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}} + #pragma omp simd linear(x:1,y,z:1) + for (i = 0; i < 16; ++i) ; + + // expected-note@+2 {{defined as linear}} + // expected-error@+1 {{linear variable cannot be linear}} + #pragma omp simd linear(x) linear(x) + for (i = 0; i < 16; ++i) ; + + // expected-note@+2 {{defined as private}} + // expected-error@+1 {{private variable cannot be linear}} + #pragma omp simd private(x) linear(x) + for (i = 0; i < 16; ++i) ; + + // expected-note@+2 {{defined as linear}} + // expected-error@+1 {{linear variable cannot be private}} + #pragma omp simd linear(x) private(x) + for (i = 0; i < 16; ++i) ; + + // expected-warning@+1 {{zero linear step (x and other variables in clause should probably be const)}} + #pragma omp simd linear(x,y:0) + for (i = 0; i < 16; ++i) ; +} + void test_private() { int i; |