|
1 |
| -// RUN: %clang_cc1 -fsyntax-only -fopenmp -x c++ -std=c++11 -fexceptions -fcxx-exceptions -verify %s -Wno-openmp-target -Wuninitialized |
| 1 | +// RUN: %clang_cc1 -fsyntax-only -fopenmp -x c++ -std=c++11 -fexceptions -fcxx-exceptions -verify=expected,omp4 %s -Wno-openmp-target -Wuninitialized |
| 2 | +// RUN: %clang_cc1 -fsyntax-only -fopenmp -fopenmp-version=50 -x c++ -std=c++11 -fexceptions -fcxx-exceptions -verify=expected,omp5 %s -Wno-openmp-target -Wuninitialized |
2 | 3 |
|
3 |
| -// RUN: %clang_cc1 -fsyntax-only -fopenmp-simd -x c++ -std=c++11 -fexceptions -fcxx-exceptions -verify %s -Wno-openmp-target -Wuninitialized |
| 4 | +// RUN: %clang_cc1 -fsyntax-only -fopenmp-simd -x c++ -std=c++11 -fexceptions -fcxx-exceptions -verify=expected,omp4 %s -Wno-openmp-target -Wuninitialized |
| 5 | +// RUN: %clang_cc1 -fsyntax-only -fopenmp-simd -fopenmp-version=50 -x c++ -std=c++11 -fexceptions -fcxx-exceptions -verify=expected,omp5 %s -Wno-openmp-target -Wuninitialized |
4 | 6 |
|
5 | 7 | class S {
|
6 | 8 | int a;
|
@@ -124,36 +126,36 @@ int test_iteration_spaces() {
|
124 | 126 |
|
125 | 127 | #pragma omp target
|
126 | 128 | #pragma omp teams
|
127 |
| -// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} |
| 129 | +// omp4-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} omp5-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'i'}} |
128 | 130 | #pragma omp distribute parallel for simd
|
129 | 131 | for (int i = 0; i; i++)
|
130 | 132 | c[i] = a[i];
|
131 | 133 |
|
132 | 134 | #pragma omp target
|
133 | 135 | #pragma omp teams
|
134 |
| -// expected-error@+3 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} |
| 136 | +// omp4-error@+3 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} omp5-error@+3 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'i'}} |
135 | 137 | // expected-error@+2 {{increment clause of OpenMP for loop must perform simple addition or subtraction on loop variable 'i'}}
|
136 | 138 | #pragma omp distribute parallel for simd
|
137 | 139 | for (int i = 0; jj < kk; ii++)
|
138 | 140 | c[i] = a[i];
|
139 | 141 |
|
140 | 142 | #pragma omp target
|
141 | 143 | #pragma omp teams
|
142 |
| -// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} |
| 144 | +// omp4-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} omp5-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'i'}} |
143 | 145 | #pragma omp distribute parallel for simd
|
144 | 146 | for (int i = 0; !!i; i++)
|
145 | 147 | c[i] = a[i];
|
146 | 148 |
|
147 |
| -// Ok |
148 | 149 | #pragma omp target
|
149 | 150 | #pragma omp teams
|
| 151 | +// omp4-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} |
150 | 152 | #pragma omp distribute parallel for simd
|
151 | 153 | for (int i = 0; i != 1; i++)
|
152 | 154 | c[i] = a[i];
|
153 | 155 |
|
154 | 156 | #pragma omp target
|
155 | 157 | #pragma omp teams
|
156 |
| -// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} |
| 158 | +// omp4-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} omp5-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'i'}} |
157 | 159 | #pragma omp distribute parallel for simd
|
158 | 160 | for (int i = 0;; i++)
|
159 | 161 | c[i] = a[i];
|
@@ -339,16 +341,16 @@ int test_iteration_spaces() {
|
339 | 341 |
|
340 | 342 | #pragma omp target
|
341 | 343 | #pragma omp teams
|
342 |
| -// expected-note@+2 {{defined as private}} |
343 |
| -// expected-error@+2 {{loop iteration variable in the associated loop of 'omp distribute parallel for simd' directive may not be private, predetermined as linear}} |
| 344 | +// omp4-note@+2 {{defined as private}} |
| 345 | +// omp4-error@+2 {{loop iteration variable in the associated loop of 'omp distribute parallel for simd' directive may not be private, predetermined as linear}} |
344 | 346 | #pragma omp distribute parallel for simd private(ii)
|
345 | 347 | for (ii = 0; ii < 10; ii++)
|
346 | 348 | c[ii] = a[ii];
|
347 | 349 |
|
348 | 350 | #pragma omp target
|
349 | 351 | #pragma omp teams
|
350 |
| -// expected-note@+2 {{defined as lastprivate}} |
351 |
| -// expected-error@+2 {{loop iteration variable in the associated loop of 'omp distribute parallel for simd' directive may not be lastprivate, predetermined as linear}} |
| 352 | +// omp4-note@+2 {{defined as lastprivate}} |
| 353 | +// omp4-error@+2 {{loop iteration variable in the associated loop of 'omp distribute parallel for simd' directive may not be lastprivate, predetermined as linear}} |
352 | 354 | #pragma omp distribute parallel for simd lastprivate(ii)
|
353 | 355 | for (ii = 0; ii < 10; ii++)
|
354 | 356 | c[ii] = a[ii];
|
@@ -543,19 +545,19 @@ int test_with_random_access_iterator() {
|
543 | 545 | ++begin;
|
544 | 546 | #pragma omp target
|
545 | 547 | #pragma omp teams
|
546 |
| -// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'I'}} |
| 548 | +// omp4-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'I'}} omp5-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'I'}} |
547 | 549 | #pragma omp distribute parallel for simd
|
548 | 550 | for (GoodIter I = begin; I - I; ++I)
|
549 | 551 | ++I;
|
550 | 552 | #pragma omp target
|
551 | 553 | #pragma omp teams
|
552 |
| -// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'I'}} |
| 554 | +// omp4-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'I'}} omp5-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'I'}} |
553 | 555 | #pragma omp distribute parallel for simd
|
554 | 556 | for (GoodIter I = begin; begin < end; ++I)
|
555 | 557 | ++I;
|
556 | 558 | #pragma omp target
|
557 | 559 | #pragma omp teams
|
558 |
| -// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'I'}} |
| 560 | +// omp4-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'I'}} omp5-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'I'}} |
559 | 561 | #pragma omp distribute parallel for simd
|
560 | 562 | for (GoodIter I = begin; !I; ++I)
|
561 | 563 | ++I;
|
|
0 commit comments