summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/TreeTransform.h
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2014-07-18 07:47:19 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2014-07-18 07:47:19 +0000
commit68446b72530b7b8badf295a350de43265dbec06a (patch)
treea4c0e485fde8c4ef174df6e53e7f1cf9b4a8cfb9 /clang/lib/Sema/TreeTransform.h
parent05c30880b6590bc7ca7ead689d2124994f795ffe (diff)
downloadbcm5719-llvm-68446b72530b7b8badf295a350de43265dbec06a.tar.gz
bcm5719-llvm-68446b72530b7b8badf295a350de43265dbec06a.zip
[OPENMP] Initial parsing and sema analysis of 'taskyield' directive.
llvm-svn: 213355
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r--clang/lib/Sema/TreeTransform.h26
1 files changed, 21 insertions, 5 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index 0f1d24c4403..741abb940d5 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -6428,12 +6428,17 @@ StmtResult TreeTransform<Derived>::TransformOMPExecutableDirective(
TClauses.push_back(nullptr);
}
}
- if (!D->getAssociatedStmt()) {
- return StmtError();
+ StmtResult AssociatedStmt;
+ if (D->hasAssociatedStmt()) {
+ if (!D->getAssociatedStmt()) {
+ return StmtError();
+ }
+ AssociatedStmt = getDerived().TransformStmt(D->getAssociatedStmt());
+ if (AssociatedStmt.isInvalid()) {
+ return StmtError();
+ }
}
- StmtResult AssociatedStmt =
- getDerived().TransformStmt(D->getAssociatedStmt());
- if (AssociatedStmt.isInvalid() || TClauses.size() != Clauses.size()) {
+ if (TClauses.size() != Clauses.size()) {
return StmtError();
}
@@ -6552,6 +6557,17 @@ TreeTransform<Derived>::TransformOMPTaskDirective(OMPTaskDirective *D) {
return Res;
}
+template <typename Derived>
+StmtResult TreeTransform<Derived>::TransformOMPTaskyieldDirective(
+ OMPTaskyieldDirective *D) {
+ DeclarationNameInfo DirName;
+ getDerived().getSema().StartOpenMPDSABlock(OMPD_taskyield, DirName, nullptr,
+ D->getLocStart());
+ StmtResult Res = getDerived().TransformOMPExecutableDirective(D);
+ getDerived().getSema().EndOpenMPDSABlock(Res.get());
+ return Res;
+}
+
//===----------------------------------------------------------------------===//
// OpenMP clause transformation
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud