summaryrefslogtreecommitdiffstats
path: root/clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2019-01-29 21:12:28 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2019-01-29 21:12:28 +0000
commitc2cdff6ffafdf997730796eb8d814fafb9bb8e20 (patch)
tree5a9ddd1c36127de1fe2d5e793d4e78b4ed9be825 /clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
parent33c9d9a9fc6338c3fefd3f0b36eeaf31843b6412 (diff)
downloadbcm5719-llvm-c2cdff6ffafdf997730796eb8d814fafb9bb8e20.tar.gz
bcm5719-llvm-c2cdff6ffafdf997730796eb8d814fafb9bb8e20.zip
[OPENMP]Fix PR40513: lastprivate taskloop counter.
We don't need to use the predetermined data-sharing attributes for the loop counters if the user explicitly specified correct data-sharing attributes for such variables. llvm-svn: 352543
Diffstat (limited to 'clang/test/OpenMP/taskloop_lastprivate_codegen.cpp')
-rw-r--r--clang/test/OpenMP/taskloop_lastprivate_codegen.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/clang/test/OpenMP/taskloop_lastprivate_codegen.cpp b/clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
index fa1549d7fcb..000ca8f02f9 100644
--- a/clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
+++ b/clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
@@ -4,6 +4,7 @@
// RUN: %clang_cc1 -verify -fopenmp -x c++ -std=c++11 -DLAMBDA -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck -check-prefix=LAMBDA %s
// RUN: %clang_cc1 -verify -fopenmp -x c++ -fblocks -DBLOCKS -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck -check-prefix=BLOCKS %s
// RUN: %clang_cc1 -verify -fopenmp -x c++ -std=c++11 -DARRAY -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck -check-prefix=ARRAY %s
+// RUN: %clang_cc1 -verify -fopenmp -x c++ -std=c++11 -DLOOP -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck -check-prefix=LOOP %s
// RUN: %clang_cc1 -verify -fopenmp-simd -x c++ -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck --check-prefix SIMD-ONLY0 %s
// RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++11 -triple x86_64-apple-darwin10 -emit-pch -o %t %s
@@ -11,11 +12,12 @@
// RUN: %clang_cc1 -verify -fopenmp-simd -x c++ -std=c++11 -DLAMBDA -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck --check-prefix SIMD-ONLY0 %s
// RUN: %clang_cc1 -verify -fopenmp-simd -x c++ -fblocks -DBLOCKS -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck --check-prefix SIMD-ONLY0 %s
// RUN: %clang_cc1 -verify -fopenmp-simd -x c++ -std=c++11 -DARRAY -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck --check-prefix SIMD-ONLY0 %s
+// RUN: %clang_cc1 -verify -fopenmp-simd -x c++ -std=c++11 -DLOOP -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck -check-prefix=SIMD-ONLY0 %s
// SIMD-ONLY0-NOT: {{__kmpc|__tgt}}
// expected-no-diagnostics
// It doesn't pass on win32.
// REQUIRES: shell
-#ifndef ARRAY
+#if !defined(ARRAY) && !defined(LOOP)
#ifndef HEADER
#define HEADER
@@ -501,7 +503,7 @@ int main() {
// CHECK: ret i32
#endif
-#else
+#elif defined(ARRAY)
// ARRAY-LABEL: array_func
struct St {
int a, b;
@@ -522,5 +524,16 @@ void array_func(int n, float a[n], St s[2]) {
for (int i = 0; i < 10; ++i)
;
}
+#else
+
+// LOOP-LABEL: loop
+void loop() {
+// LOOP: call i8* @__kmpc_omp_task_alloc(
+// LOOP: call void @__kmpc_taskloop(
+ int i;
+#pragma omp taskloop lastprivate(i)
+ for (i = 0; i < 10; ++i)
+ ;
+}
#endif
OpenPOWER on IntegriCloud