summaryrefslogtreecommitdiffstats
path: root/test/OpenMP/for_private_messages.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2014-06-19 09:13:45 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2014-06-19 09:13:45 +0000
commit4adb982deb2759eb75b4611cdc067bba196d4498 (patch)
treea07ac19ea52bcd7969bb1d66d4e7ecf9d780e4c7 /test/OpenMP/for_private_messages.cpp
parentbc44c099bc1a1a65ecc977f67bfaf9d0179ea794 (diff)
[OPENMP] Improved diagnostic messages for vars with the predetermined data sharing attributes and reformatting
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211262 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/OpenMP/for_private_messages.cpp')
-rw-r--r--test/OpenMP/for_private_messages.cpp195
1 files changed, 117 insertions, 78 deletions
diff --git a/test/OpenMP/for_private_messages.cpp b/test/OpenMP/for_private_messages.cpp
index f955e87692..f7a497930d 100644
--- a/test/OpenMP/for_private_messages.cpp
+++ b/test/OpenMP/for_private_messages.cpp
@@ -11,77 +11,100 @@ struct S1; // expected-note 2 {{declared here}} expected-note 2 {{forward declar
extern S1 a;
class S2 {
mutable int a;
+
public:
- S2():a(0) { }
+ S2() : a(0) {}
};
const S2 b;
const S2 ba[5];
class S3 {
int a;
+
public:
- S3():a(0) { }
+ S3() : a(0) {}
};
const S3 ca[5];
class S4 { // expected-note {{'S4' declared here}}
int a;
S4();
+
public:
- S4(int v):a(v) { }
+ S4(int v) : a(v) {}
};
class S5 { // expected-note {{'S5' declared here}}
int a;
- S5():a(0) {}
+ S5() : a(0) {}
+
public:
- S5(int v):a(v) { }
+ S5(int v) : a(v) {}
};
S3 h;
#pragma omp threadprivate(h) // expected-note 2 {{defined as threadprivate or thread local}}
-template<class I, class C> int foomain(I argc, C **argv) {
+template <class I, class C>
+int foomain(I argc, C **argv) {
I e(4);
I g(5);
int i;
- int &j = i; // expected-note {{'j' defined here}}
- #pragma omp for private // expected-error {{expected '(' after 'private'}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private () // expected-error {{expected expression}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (argc // expected-error {{expected ')'}} expected-note {{to match this '('}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (argc)
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (S1) // expected-error {{'S1' does not refer to a value}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (a, b) // expected-error {{private variable with incomplete type 'S1'}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (argv[1]) // expected-error {{expected variable name}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private(e, g)
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private(h) // expected-error {{threadprivate or thread local variable cannot be private}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for shared(i) // expected-error {{unexpected OpenMP clause 'shared' in directive '#pragma omp for'}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp parallel
+ int &j = i; // expected-note {{'j' defined here}}
+#pragma omp for private // expected-error {{expected '(' after 'private'}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private() // expected-error {{expected expression}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(argc // expected-error {{expected ')'}} expected-note {{to match this '('}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(argc)
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(S1) // expected-error {{'S1' does not refer to a value}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(a, b) // expected-error {{private variable with incomplete type 'S1'}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(argv[1]) // expected-error {{expected variable name}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(e, g)
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(h) // expected-error {{threadprivate or thread local variable cannot be private}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for shared(i) // expected-error {{unexpected OpenMP clause 'shared' in directive '#pragma omp for'}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp parallel
{
int v = 0;
int i;
- #pragma omp for private(i)
- for (int k = 0; k < argc; ++k) { i = k; v += i; }
+#pragma omp for private(i)
+ for (int k = 0; k < argc; ++k) {
+ i = k;
+ v += i;
+ }
}
- #pragma omp parallel shared(i)
- #pragma omp parallel private(i)
- #pragma omp for private(j) // expected-error {{arguments of OpenMP clause 'private' cannot be of reference type}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private(i)
- for (int k = 0; k < argc; ++k) ++k;
+#pragma omp parallel shared(i)
+#pragma omp parallel private(i)
+#pragma omp for private(j) // expected-error {{arguments of OpenMP clause 'private' cannot be of reference type}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(i)
+ for (int k = 0; k < argc; ++k)
+ ++k;
return 0;
}
@@ -89,45 +112,61 @@ int main(int argc, char **argv) {
S4 e(4); // expected-note {{'e' defined here}}
S5 g(5); // expected-note {{'g' defined here}}
int i;
- int &j = i; // expected-note {{'j' defined here}}
- #pragma omp for private // expected-error {{expected '(' after 'private'}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private () // expected-error {{expected expression}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (argc // expected-error {{expected ')'}} expected-note {{to match this '('}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (argc)
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (S1) // expected-error {{'S1' does not refer to a value}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (a, b) // expected-error {{private variable with incomplete type 'S1'}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private (argv[1]) // expected-error {{expected variable name}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private(e, g) // expected-error 2 {{private variable must have an accessible, unambiguous default constructor}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private(h) // expected-error {{threadprivate or thread local variable cannot be private}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for shared(i) // expected-error {{unexpected OpenMP clause 'shared' in directive '#pragma omp for'}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp parallel
+ int &j = i; // expected-note {{'j' defined here}}
+#pragma omp for private // expected-error {{expected '(' after 'private'}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private() // expected-error {{expected expression}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(argc // expected-error {{expected ')'}} expected-note {{to match this '('}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(argc)
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(S1) // expected-error {{'S1' does not refer to a value}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(a, b) // expected-error {{private variable with incomplete type 'S1'}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(argv[1]) // expected-error {{expected variable name}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(e, g) // expected-error 2 {{private variable must have an accessible, unambiguous default constructor}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(h) // expected-error {{threadprivate or thread local variable cannot be private}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for shared(i) // expected-error {{unexpected OpenMP clause 'shared' in directive '#pragma omp for'}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp parallel
{
int i;
- #pragma omp for private(i)
- for (int k = 0; k < argc; ++k) ++k;
+#pragma omp for private(i)
+ for (int k = 0; k < argc; ++k)
+ ++k;
}
- #pragma omp parallel shared(i)
- #pragma omp parallel private(i)
- #pragma omp for private(j) // expected-error {{arguments of OpenMP clause 'private' cannot be of reference type}}
- for (int k = 0; k < argc; ++k) ++k;
- #pragma omp for private(i)
- for (int k = 0; k < argc; ++k) ++k;
+#pragma omp parallel shared(i)
+#pragma omp parallel private(i)
+#pragma omp for private(j) // expected-error {{arguments of OpenMP clause 'private' cannot be of reference type}}
+ for (int k = 0; k < argc; ++k)
+ ++k;
+#pragma omp for private(i)
+ for (int k = 0; k < argc; ++k)
+ ++k;
return 0;
}