diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2014-07-17 12:19:31 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2014-07-17 12:19:31 +0000 |
commit | 7aea99a310b5beca93abc8aa788b074175a95bcb (patch) | |
tree | 8dde97a13e8d381258d3b6041c3e73482996eae9 /clang/test | |
parent | 9a2350e45950e13d3d3a0ff318c10912ffef9d32 (diff) | |
download | bcm5719-llvm-7aea99a310b5beca93abc8aa788b074175a95bcb.tar.gz bcm5719-llvm-7aea99a310b5beca93abc8aa788b074175a95bcb.zip |
[OPENMP] Initial support for parsing and sema analysis of 'untied' clause.
llvm-svn: 213257
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/OpenMP/task_ast_print.cpp | 12 | ||||
-rw-r--r-- | clang/test/OpenMP/task_messages.cpp | 6 |
2 files changed, 12 insertions, 6 deletions
diff --git a/clang/test/OpenMP/task_ast_print.cpp b/clang/test/OpenMP/task_ast_print.cpp index c868e74977c..f29b5b3fe71 100644 --- a/clang/test/OpenMP/task_ast_print.cpp +++ b/clang/test/OpenMP/task_ast_print.cpp @@ -33,7 +33,7 @@ T tmain(T argc, T *argv) { T b = argc, c, d, e, f, g; static T a; S<T> s; -#pragma omp task +#pragma omp task untied a = 2; #pragma omp task default(none), private(argc, b) firstprivate(argv) shared(d) if (argc > 0) final(S<T>::TS > 0) foo(); @@ -46,7 +46,7 @@ T tmain(T argc, T *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 task +// CHECK-NEXT: #pragma omp task untied // CHECK-NEXT: a = 2; // CHECK-NEXT: #pragma omp task default(none) private(argc,b) firstprivate(argv) shared(d) if(argc > 0) final(S<int>::TS > 0) // CHECK-NEXT: foo() @@ -56,7 +56,7 @@ T tmain(T argc, T *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 task +// CHECK-NEXT: #pragma omp task untied // CHECK-NEXT: a = 2; // CHECK-NEXT: #pragma omp task default(none) private(argc,b) firstprivate(argv) shared(d) if(argc > 0) final(S<long>::TS > 0) // CHECK-NEXT: foo() @@ -66,7 +66,7 @@ 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 task +// CHECK-NEXT: #pragma omp task untied // CHECK-NEXT: a = 2; // CHECK-NEXT: #pragma omp task default(none) private(argc,b) firstprivate(argv) shared(d) if(argc > 0) final(S<T>::TS > 0) // CHECK-NEXT: foo() @@ -82,8 +82,8 @@ int main(int argc, char **argv) { #pragma omp threadprivate(a) Enum ee; // CHECK: Enum ee; -#pragma omp task - // CHECK-NEXT: #pragma omp task +#pragma omp task untied + // CHECK-NEXT: #pragma omp task untied a = 2; // CHECK-NEXT: a = 2; #pragma omp task default(none), private(argc, b) firstprivate(argv) if (argc > 0) final(a > 0) diff --git a/clang/test/OpenMP/task_messages.cpp b/clang/test/OpenMP/task_messages.cpp index 3c8968299c4..7491c23b739 100644 --- a/clang/test/OpenMP/task_messages.cpp +++ b/clang/test/OpenMP/task_messages.cpp @@ -97,6 +97,9 @@ int foo() { // expected-error@+1 {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}} #pragma omp for reduction(+ : r) ++r; +// expected-error@+1 {{directive '#pragma omp task' cannot contain more than one 'untied' clause}} +#pragma omp task untied untied + ++r; return a + b; } @@ -256,6 +259,9 @@ L2: // expected-error@+1 {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}} #pragma omp for reduction(+ : r) ++r; +// expected-error@+1 {{directive '#pragma omp task' cannot contain more than one 'untied' clause}} +#pragma omp task untied untied + ++r; // expected-note@+2 {{in instantiation of function template specialization 'foo<int>' requested here}} // expected-note@+1 {{in instantiation of function template specialization 'foo<S>' requested here}} return foo<int>() + foo<S>(); |