[OpenMP] Parsing + sema for target parallel directive.
Summary:
This patch adds parsing + sema for the target parallel directive and its clauses along with testcases.
Reviewers: ABataev
Differential Revision: http://reviews.llvm.org/D16553
Rebased to current trunk and updated test cases.
llvm-svn: 258832
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 24dde23..6f1b366 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -1955,6 +1955,7 @@
void VisitOMPTargetDataDirective(const OMPTargetDataDirective *D);
void VisitOMPTargetEnterDataDirective(const OMPTargetEnterDataDirective *D);
void VisitOMPTargetExitDataDirective(const OMPTargetExitDataDirective *D);
+ void VisitOMPTargetParallelDirective(const OMPTargetParallelDirective *D);
void VisitOMPTeamsDirective(const OMPTeamsDirective *D);
void VisitOMPTaskLoopDirective(const OMPTaskLoopDirective *D);
void VisitOMPTaskLoopSimdDirective(const OMPTaskLoopSimdDirective *D);
@@ -2647,6 +2648,11 @@
VisitOMPExecutableDirective(D);
}
+void EnqueueVisitor::VisitOMPTargetParallelDirective(
+ const OMPTargetParallelDirective *D) {
+ VisitOMPExecutableDirective(D);
+}
+
void EnqueueVisitor::VisitOMPTeamsDirective(const OMPTeamsDirective *D) {
VisitOMPExecutableDirective(D);
}
@@ -4858,6 +4864,8 @@
return cxstring::createRef("OMPTargetEnterDataDirective");
case CXCursor_OMPTargetExitDataDirective:
return cxstring::createRef("OMPTargetExitDataDirective");
+ case CXCursor_OMPTargetParallelDirective:
+ return cxstring::createRef("OMPTargetParallelDirective");
case CXCursor_OMPTeamsDirective:
return cxstring::createRef("OMPTeamsDirective");
case CXCursor_OMPCancellationPointDirective:
diff --git a/clang/tools/libclang/CXCursor.cpp b/clang/tools/libclang/CXCursor.cpp
index 317ac17..ccc7379 100644
--- a/clang/tools/libclang/CXCursor.cpp
+++ b/clang/tools/libclang/CXCursor.cpp
@@ -606,6 +606,9 @@
case Stmt::OMPTargetExitDataDirectiveClass:
K = CXCursor_OMPTargetExitDataDirective;
break;
+ case Stmt::OMPTargetParallelDirectiveClass:
+ K = CXCursor_OMPTargetParallelDirective;
+ break;
case Stmt::OMPTeamsDirectiveClass:
K = CXCursor_OMPTeamsDirective;
break;