summaryrefslogtreecommitdiffstats
path: root/clang/test/OpenMP/parallel_messages.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/OpenMP/parallel_messages.cpp')
-rw-r--r--clang/test/OpenMP/parallel_messages.cpp30
1 files changed, 28 insertions, 2 deletions
diff --git a/clang/test/OpenMP/parallel_messages.cpp b/clang/test/OpenMP/parallel_messages.cpp
index 8b0c0353c20..aa932e69e37 100644
--- a/clang/test/OpenMP/parallel_messages.cpp
+++ b/clang/test/OpenMP/parallel_messages.cpp
@@ -7,6 +7,7 @@ void foo() {
#pragma omp parallel // expected-error {{unexpected OpenMP directive '#pragma omp parallel'}}
+int a;
struct S;
S& bar();
int main(int argc, char **argv) {
@@ -54,8 +55,11 @@ int main(int argc, char **argv) {
break;
}
}
- #pragma omp parallel default(none)
- ++argc; // expected-error {{variable 'argc' must have explicitly specified data sharing attributes}}
+#pragma omp parallel default(none) // expected-note 2 {{explicit data sharing attribute requested here}}
+ {
+ ++argc; // expected-error {{variable 'argc' must have explicitly specified data sharing attributes}}
+ ++a; // expected-error {{variable 'a' must have explicitly specified data sharing attributes}}
+ }
goto L2; // expected-error {{use of undeclared label 'L2'}}
#pragma omp parallel
@@ -73,3 +77,25 @@ int main(int argc, char **argv) {
return 0;
}
+struct a {
+ static constexpr int b = 0;
+};
+template <bool> struct c;
+template <typename d, typename e> bool operator<(d, e);
+struct f {
+ int cbegin;
+};
+class g {
+ f blocks;
+ void j();
+};
+template <typename> struct is_error_code_enum : a {};
+struct h {
+ template <typename i, typename = c<is_error_code_enum<i>::b>> h(i);
+};
+h operator<(h, h);
+void g::j() {
+#pragma omp parallel for default(none)
+ for (auto a = blocks.cbegin; a < blocks; ++a) // expected-error {{invalid operands to binary expression ('f' and 'int')}}
+ ;
+}
OpenPOWER on IntegriCloud