From d5af8e472d6016f3dca2a33fa9d92bcf35aad43b Mon Sep 17 00:00:00 2001 From: Alexey Bataev Date: Tue, 1 Oct 2013 05:32:34 +0000 Subject: [OpenMP] Added parsing and semantic analysis for firstprivate clause llvm-svn: 191730 --- clang/test/OpenMP/parallel_private_messages.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'clang/test/OpenMP/parallel_private_messages.cpp') diff --git a/clang/test/OpenMP/parallel_private_messages.cpp b/clang/test/OpenMP/parallel_private_messages.cpp index 102bf300aa2..2037d56daf0 100644 --- a/clang/test/OpenMP/parallel_private_messages.cpp +++ b/clang/test/OpenMP/parallel_private_messages.cpp @@ -64,10 +64,18 @@ int main(int argc, char **argv) { #pragma omp parallel private(S2::S2s) // expected-error {{shared variable cannot be private}} #pragma omp parallel private(e, g) // expected-error 2 {{private variable must have an accessible, unambiguous default constructor}} #pragma omp parallel private(threadvar) // expected-error {{threadprivate or thread local variable cannot be private}} + #pragma omp parallel shared(i), private(i) // expected-error {{shared variable cannot be private}} expected-note {{defined as shared}} + foo(); + #pragma omp parallel firstprivate(i) private(i) // expected-error {{firstprivate variable cannot be private}} expected-note {{defined as firstprivate}} foo(); #pragma omp parallel private(i) #pragma omp parallel private(j) // expected-error {{arguments of OpenMP clause 'private' cannot be of reference type 'int &'}} foo(); + #pragma omp parallel firstprivate(i) + for (int k = 0; k < 10; ++k) { + #pragma omp parallel private(i) + foo(); + } return 0; } -- cgit v1.2.3