Changeset View
Changeset View
Standalone View
Standalone View
clang/test/OpenMP/parallel_for_loop_messages.cpp
Show First 20 Lines • Show All 86 Lines • ▼ Show 20 Lines | #pragma omp parallel for | ||||
for (c[ii] = 0; ii < 10; ++ii) | for (c[ii] = 0; ii < 10; ++ii) | ||||
c[ii] = a[ii]; | c[ii] = a[ii]; | ||||
// Ok to skip parenthesises. | // Ok to skip parenthesises. | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (((ii)) = 0; ii < 10; ++ii) | for (((ii)) = 0; ii < 10; ++ii) | ||||
c[ii] = a[ii]; | c[ii] = a[ii]; | ||||
// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} | // expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'i'}} | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (int i = 0; i; i++) | for (int i = 0; i; i++) | ||||
c[i] = a[i]; | c[i] = a[i]; | ||||
// expected-error@+3 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} | // expected-error@+3 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'i'}} | ||||
// expected-error@+2 {{increment clause of OpenMP for loop must perform simple addition or subtraction on loop variable 'i'}} | // expected-error@+2 {{increment clause of OpenMP for loop must perform simple addition or subtraction on loop variable 'i'}} | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (int i = 0; jj < kk; ii++) | for (int i = 0; jj < kk; ii++) | ||||
c[i] = a[i]; | c[i] = a[i]; | ||||
// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} | // expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'i'}} | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (int i = 0; !!i; i++) | for (int i = 0; !!i; i++) | ||||
c[i] = a[i]; | c[i] = a[i]; | ||||
// Ok | // Ok | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (int i = 0; i != 1; i++) | for (int i = 0; i != 1; i++) | ||||
c[i] = a[i]; | c[i] = a[i]; | ||||
// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'i'}} | // expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'i'}} | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (int i = 0;; i++) | for (int i = 0;; i++) | ||||
c[i] = a[i]; | c[i] = a[i]; | ||||
// Ok. | // Ok. | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (int i = 11; i > 10; i--) | for (int i = 11; i > 10; i--) | ||||
c[i] = a[i]; | c[i] = a[i]; | ||||
▲ Show 20 Lines • Show All 286 Lines • ▼ Show 20 Lines | for (begin = begin0; begin < end; ++begin) | ||||
++begin; | ++begin; | ||||
// expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}} | // expected-error@+2 {{initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')}} | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (++begin; begin < end; ++begin) | for (++begin; begin < end; ++begin) | ||||
++begin; | ++begin; | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (begin = end; begin < end; ++begin) | for (begin = end; begin < end; ++begin) | ||||
++begin; | ++begin; | ||||
// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'I'}} | // expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'I'}} | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (GoodIter I = begin; I - I; ++I) | for (GoodIter I = begin; I - I; ++I) | ||||
++I; | ++I; | ||||
// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'I'}} | // expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'I'}} | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (GoodIter I = begin; begin < end; ++I) | for (GoodIter I = begin; begin < end; ++I) | ||||
++I; | ++I; | ||||
// expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable 'I'}} | // expected-error@+2 {{condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', '>=', or '!=') of loop variable 'I'}} | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (GoodIter I = begin; !I; ++I) | for (GoodIter I = begin; !I; ++I) | ||||
++I; | ++I; | ||||
// expected-note@+3 {{loop step is expected to be negative due to this condition}} | // expected-note@+3 {{loop step is expected to be negative due to this condition}} | ||||
// expected-error@+2 {{increment expression must cause 'I' to decrease on each iteration of OpenMP for loop}} | // expected-error@+2 {{increment expression must cause 'I' to decrease on each iteration of OpenMP for loop}} | ||||
#pragma omp parallel for | #pragma omp parallel for | ||||
for (GoodIter I = begin; I >= end; I = I + 1) | for (GoodIter I = begin; I >= end; I = I + 1) | ||||
++I; | ++I; | ||||
▲ Show 20 Lines • Show All 194 Lines • Show Last 20 Lines |