summaryrefslogtreecommitdiff
path: root/test/OpenMP/parallel_ast_print.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2014-03-05 06:45:14 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2014-03-05 06:45:14 +0000
commit9e4d5da66ba56954f8fa64f59d28f4d2335fd37f (patch)
tree21e4194ab1d1b4756498b5a74c335d281c26c348 /test/OpenMP/parallel_ast_print.cpp
parent891c1aeab834d2f5bbe7a9003af48c75ee2b4a3d (diff)
downloadclang-9e4d5da66ba56954f8fa64f59d28f4d2335fd37f.tar.gz
clang-9e4d5da66ba56954f8fa64f59d28f4d2335fd37f.tar.bz2
clang-9e4d5da66ba56954f8fa64f59d28f4d2335fd37f.tar.xz
[OPNEMP] Fixed instantiation of 'if' clause
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202940 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/OpenMP/parallel_ast_print.cpp')
-rw-r--r--test/OpenMP/parallel_ast_print.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/test/OpenMP/parallel_ast_print.cpp b/test/OpenMP/parallel_ast_print.cpp
index c197031c59..e76a410522 100644
--- a/test/OpenMP/parallel_ast_print.cpp
+++ b/test/OpenMP/parallel_ast_print.cpp
@@ -9,7 +9,7 @@
void foo() {}
-template <typename T>
+template <typename T, int C>
T tmain(T argc, T *argv) {
T b = argc, c, d, e, f, g;
static T a;
@@ -17,29 +17,37 @@ T tmain(T argc, T *argv) {
a=2;
#pragma omp parallel default(none), private(argc,b) firstprivate(argv) shared (d) if (argc > 0)
foo();
+#pragma omp parallel if (C)
+ foo();
return 0;
}
-// CHECK: template <typename T = int> int tmain(int argc, int *argv) {
+// CHECK: template <typename T = int, int C = 2> int tmain(int argc, int *argv) {
// CHECK-NEXT: int b = argc, c, d, e, f, g;
// CHECK-NEXT: static int a;
// 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: foo()
-// CHECK: template <typename T = float> float tmain(float argc, float *argv) {
+// CHECK-NEXT: #pragma omp parallel if(2)
+// 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-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: foo()
-// CHECK: template <typename T> T tmain(T argc, T *argv) {
+// CHECK-NEXT: #pragma omp parallel if(0)
+// 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: #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: foo()
+// CHECK-NEXT: #pragma omp parallel if(C)
+// CHECK-NEXT: foo()
int main (int argc, char **argv) {
float x;
@@ -54,7 +62,7 @@ int main (int argc, char **argv) {
// CHECK-NEXT: #pragma omp parallel default(none) private(argc,b) firstprivate(argv) if(argc > 0)
foo();
// CHECK-NEXT: foo();
- return tmain(b, &b) + tmain(x, &x);
+ return tmain<int, 2>(b, &b) + tmain<float, 0>(x, &x);
}
#endif