diff options
Diffstat (limited to 'test/OpenMP/parallel_for_lastprivate_messages.cpp')
-rw-r--r-- | test/OpenMP/parallel_for_lastprivate_messages.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/test/OpenMP/parallel_for_lastprivate_messages.cpp b/test/OpenMP/parallel_for_lastprivate_messages.cpp index 09bed02..ccfe2ea 100644 --- a/test/OpenMP/parallel_for_lastprivate_messages.cpp +++ b/test/OpenMP/parallel_for_lastprivate_messages.cpp @@ -17,7 +17,7 @@ public: S2(S2 &s2) : a(s2.a) {} S2 &operator=(const S2 &); const S2 &operator=(const S2 &) const; - static float S2s; + static float S2s; // expected-note {{static data member is predetermined as shared}} static const float S2sc; }; const float S2::S2sc = 0; // expected-note {{static data member is predetermined as shared}} @@ -67,7 +67,7 @@ int foomain(int argc, char **argv) { I e(4); I g(5); int i; - int &j = i; // expected-note {{'j' defined here}} + int &j = i; #pragma omp parallel for lastprivate // expected-error {{expected '(' after 'lastprivate'}} for (int k = 0; k < argc; ++k) ++k; @@ -104,9 +104,6 @@ int foomain(int argc, char **argv) { #pragma omp parallel for lastprivate(h) // expected-error {{threadprivate or thread local variable cannot be lastprivate}} for (int k = 0; k < argc; ++k) ++k; -#pragma omp parallel for linear(i) // expected-error {{unexpected OpenMP clause 'linear' in directive '#pragma omp parallel for'}} - for (int k = 0; k < argc; ++k) - ++k; #pragma omp parallel { int v = 0; @@ -119,7 +116,7 @@ int foomain(int argc, char **argv) { } #pragma omp parallel shared(i) #pragma omp parallel private(i) -#pragma omp parallel for lastprivate(j) // expected-error {{arguments of OpenMP clause 'lastprivate' cannot be of reference type}} +#pragma omp parallel for lastprivate(j) for (int k = 0; k < argc; ++k) ++k; #pragma omp parallel for lastprivate(i) @@ -144,7 +141,7 @@ int main(int argc, char **argv) { S3 m; S6 n(2); int i; - int &j = i; // expected-note {{'j' defined here}} + int &j = i; #pragma omp parallel for lastprivate // expected-error {{expected '(' after 'lastprivate'}} for (i = 0; i < argc; ++i) foo(); @@ -191,7 +188,7 @@ int main(int argc, char **argv) { #pragma omp parallel for lastprivate(xa) // OK for (i = 0; i < argc; ++i) foo(); -#pragma omp parallel for lastprivate(S2::S2s) +#pragma omp parallel for lastprivate(S2::S2s) // expected-error {{shared variable cannot be lastprivate}} for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for lastprivate(S2::S2sc) // expected-error {{shared variable cannot be lastprivate}} @@ -223,7 +220,7 @@ int main(int argc, char **argv) { #pragma omp parallel for lastprivate(xa) for (i = 0; i < argc; ++i) foo(); -#pragma omp parallel for lastprivate(j) // expected-error {{arguments of OpenMP clause 'lastprivate' cannot be of reference type}} +#pragma omp parallel for lastprivate(j) for (i = 0; i < argc; ++i) foo(); #pragma omp parallel for firstprivate(m) lastprivate(m) // expected-error {{'operator=' is a private member of 'S3'}} @@ -232,5 +229,10 @@ int main(int argc, char **argv) { #pragma omp parallel for lastprivate(n) firstprivate(n) // OK for (i = 0; i < argc; ++i) foo(); + static int si; +#pragma omp parallel for lastprivate(si) // OK + for (i = 0; i < argc; ++i) + si = i + 2; + return foomain<S4, S5>(argc, argv); // expected-note {{in instantiation of function template specialization 'foomain<S4, S5>' requested here}} } |