summaryrefslogtreecommitdiff
path: root/test/OpenMP/parallel_ast_print.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2014-03-06 06:15:19 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2014-03-06 06:15:19 +0000
commita3eb9f5811b85ce1b5158ad6691ea0a61dbb247d (patch)
tree3b27a662d7aa9a536e2a26d6efab324b0ff43cf2 /test/OpenMP/parallel_ast_print.cpp
parent4084bb9da5b07d9a074e1cfec8279daa4d61ab56 (diff)
downloadclang-a3eb9f5811b85ce1b5158ad6691ea0a61dbb247d.tar.gz
clang-a3eb9f5811b85ce1b5158ad6691ea0a61dbb247d.tar.bz2
clang-a3eb9f5811b85ce1b5158ad6691ea0a61dbb247d.tar.xz
[OPENMP] Clause 'num_threads'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203087 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/OpenMP/parallel_ast_print.cpp')
-rw-r--r--test/OpenMP/parallel_ast_print.cpp45
1 files changed, 28 insertions, 17 deletions
diff --git a/test/OpenMP/parallel_ast_print.cpp b/test/OpenMP/parallel_ast_print.cpp
index bd5171435e..beb29ec15a 100644
--- a/test/OpenMP/parallel_ast_print.cpp
+++ b/test/OpenMP/parallel_ast_print.cpp
@@ -8,61 +8,72 @@
void foo() {}
+template <class T>
+struct S {
+ operator T() {return T();}
+};
template <typename T, int C>
T tmain(T argc, T *argv) {
T b = argc, c, d, e, f, g;
static T a;
+ S<T> s;
#pragma omp parallel
a=2;
-#pragma omp parallel default(none), private(argc,b) firstprivate(argv) shared (d) if (argc > 0)
+#pragma omp parallel default(none), private(argc,b) firstprivate(argv) shared (d) if (argc > 0) num_threads(C)
foo();
-#pragma omp parallel if (C)
+#pragma omp parallel if (C) num_threads(s)
foo();
return 0;
}
-// CHECK: template <typename T = int, int C = 2> int tmain(int argc, int *argv) {
+// CHECK: template <typename T = int, int C = 5> int tmain(int argc, int *argv) {
// CHECK-NEXT: int b = argc, c, d, e, f, g;
// CHECK-NEXT: static int a;
+// CHECK-NEXT: S<int> s;
// CHECK-NEXT: #pragma omp parallel
// CHECK-NEXT: a = 2;
-// CHECK-NEXT: #pragma omp parallel default(none) private(argc,b) firstprivate(argv) shared(d) if(argc > 0)
+// CHECK-NEXT: #pragma omp parallel default(none) private(argc,b) firstprivate(argv) shared(d) if(argc > 0) num_threads(5)
// CHECK-NEXT: foo()
-// CHECK-NEXT: #pragma omp parallel if(2)
+// CHECK-NEXT: #pragma omp parallel if(5) num_threads(s)
// CHECK-NEXT: foo()
-// CHECK: template <typename T = float, int C = 0> float tmain(float argc, float *argv) {
-// CHECK-NEXT: float b = argc, c, d, e, f, g;
-// CHECK-NEXT: static float a;
+// CHECK: template <typename T = long, int C = 1> long tmain(long argc, long *argv) {
+// CHECK-NEXT: long b = argc, c, d, e, f, g;
+// CHECK-NEXT: static long a;
+// CHECK-NEXT: S<long> s;
// CHECK-NEXT: #pragma omp parallel
// CHECK-NEXT: a = 2;
-// CHECK-NEXT: #pragma omp parallel default(none) private(argc,b) firstprivate(argv) shared(d) if(argc > 0)
+// CHECK-NEXT: #pragma omp parallel default(none) private(argc,b) firstprivate(argv) shared(d) if(argc > 0) num_threads(1)
// CHECK-NEXT: foo()
-// CHECK-NEXT: #pragma omp parallel if(0)
+// CHECK-NEXT: #pragma omp parallel if(1) num_threads(s)
// CHECK-NEXT: foo()
// CHECK: template <typename T, int C> T tmain(T argc, T *argv) {
// CHECK-NEXT: T b = argc, c, d, e, f, g;
// CHECK-NEXT: static T a;
+// CHECK-NEXT: S<T> s;
// CHECK-NEXT: #pragma omp parallel
// CHECK-NEXT: a = 2;
-// CHECK-NEXT: #pragma omp parallel default(none) private(argc,b) firstprivate(argv) shared(d) if(argc > 0)
+// CHECK-NEXT: #pragma omp parallel default(none) private(argc,b) firstprivate(argv) shared(d) if(argc > 0) num_threads(C)
// CHECK-NEXT: foo()
-// CHECK-NEXT: #pragma omp parallel if(C)
+// CHECK-NEXT: #pragma omp parallel if(C) num_threads(s)
// CHECK-NEXT: foo()
+enum Enum { };
+
int main (int argc, char **argv) {
- float x;
+ long x;
int b = argc, c, d, e, f, g;
static int a;
-// CHECK: static int a;
+ Enum ee;
+// CHECK: Enum ee;
#pragma omp parallel
// CHECK-NEXT: #pragma omp parallel
a=2;
// CHECK-NEXT: a = 2;
-#pragma omp parallel default(none), private(argc,b) firstprivate(argv) if (argc > 0)
-// CHECK-NEXT: #pragma omp parallel default(none) private(argc,b) firstprivate(argv) if(argc > 0)
+#pragma omp parallel default(none), private(argc,b) firstprivate(argv) if (argc > 0) num_threads(ee)
+// CHECK-NEXT: #pragma omp parallel default(none) private(argc,b) firstprivate(argv) if(argc > 0) num_threads(ee)
foo();
// CHECK-NEXT: foo();
- return tmain<int, 2>(b, &b) + tmain<float, 0>(x, &x);
+ return tmain<int, 5>(b, &b) + tmain<long, 1>(x, &x);
}
#endif