Author: arpith Date: Thu Jan 21 16:18:28 2016 New Revision: 258441 URL: http://llvm.org/viewvc/llvm-project?rev=258441&view=rev Log: [OpenMP] Parsing + Sema for nowait clause on target directive
Summary: Allow nowait clause on target directive in sema and add test cases. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16358 Added: cfe/trunk/test/OpenMP/target_nowait_messages.cpp Modified: cfe/trunk/include/clang/Basic/OpenMPKinds.def cfe/trunk/test/OpenMP/target_ast_print.cpp Modified: cfe/trunk/include/clang/Basic/OpenMPKinds.def URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/OpenMPKinds.def?rev=258441&r1=258440&r2=258441&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/OpenMPKinds.def (original) +++ cfe/trunk/include/clang/Basic/OpenMPKinds.def Thu Jan 21 16:18:28 2016 @@ -355,6 +355,7 @@ OPENMP_TARGET_CLAUSE(if) OPENMP_TARGET_CLAUSE(device) OPENMP_TARGET_CLAUSE(map) OPENMP_TARGET_CLAUSE(private) +OPENMP_TARGET_CLAUSE(nowait) // Clauses allowed for OpenMP directive 'target data'. // TODO More clauses for 'target data' directive. Modified: cfe/trunk/test/OpenMP/target_ast_print.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_ast_print.cpp?rev=258441&r1=258440&r2=258441&view=diff ============================================================================== --- cfe/trunk/test/OpenMP/target_ast_print.cpp (original) +++ cfe/trunk/test/OpenMP/target_ast_print.cpp Thu Jan 21 16:18:28 2016 @@ -25,6 +25,8 @@ T tmain(T argc, T *argv) { foo(); #pragma omp target map(always,alloc: i) foo(); +#pragma omp target nowait + foo(); return 0; } @@ -44,6 +46,8 @@ T tmain(T argc, T *argv) { // CHECK-NEXT: foo() // CHECK-NEXT: #pragma omp target map(always,alloc: i) // CHECK-NEXT: foo() +// CHECK-NEXT: #pragma omp target nowait +// CHECK-NEXT: foo() // CHECK: template <typename T = char, int C = 1> char tmain(char argc, char *argv) { // CHECK-NEXT: char i, j, a[20] // CHECK-NEXT: #pragma omp target @@ -60,6 +64,8 @@ T tmain(T argc, T *argv) { // CHECK-NEXT: foo() // CHECK-NEXT: #pragma omp target map(always,alloc: i) // CHECK-NEXT: foo() +// CHECK-NEXT: #pragma omp target nowait +// CHECK-NEXT: foo() // CHECK: template <typename T, int C> T tmain(T argc, T *argv) { // CHECK-NEXT: T i, j, a[20] // CHECK-NEXT: #pragma omp target @@ -76,6 +82,8 @@ T tmain(T argc, T *argv) { // CHECK-NEXT: foo() // CHECK-NEXT: #pragma omp target map(always,alloc: i) // CHECK-NEXT: foo() +// CHECK-NEXT: #pragma omp target nowait +// CHECK-NEXT: foo() // CHECK-LABEL: int main(int argc, char **argv) { int main (int argc, char **argv) { @@ -115,6 +123,11 @@ int main (int argc, char **argv) { foo(); // CHECK-NEXT: foo(); +#pragma omp target nowait +// CHECK-NEXT: #pragma omp target nowait + foo(); +// CHECK-NEXT: foo(); + return tmain<int, 5>(argc, &argc) + tmain<char, 1>(argv[0][0], argv[0]); } Added: cfe/trunk/test/OpenMP/target_nowait_messages.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_nowait_messages.cpp?rev=258441&view=auto ============================================================================== --- cfe/trunk/test/OpenMP/target_nowait_messages.cpp (added) +++ cfe/trunk/test/OpenMP/target_nowait_messages.cpp Thu Jan 21 16:18:28 2016 @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -triple x86_64-apple-macos10.7.0 -verify -fopenmp -ferror-limit 100 -o - %s + +void foo() { +} + +int main(int argc, char **argv) { + #pragma omp target nowait( // expected-warning {{extra tokens at the end of '#pragma omp target' are ignored}} + foo(); + #pragma omp target nowait (argc)) // expected-warning {{extra tokens at the end of '#pragma omp target' are ignored}} + foo(); + #pragma omp target nowait device (-10u) + foo(); + #pragma omp target nowait (3.14) device (-10u) // expected-warning {{extra tokens at the end of '#pragma omp target' are ignored}} + foo(); + + return 0; +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits