summaryrefslogtreecommitdiffstats
path: root/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
commit27b4c37d4a34875969fb2afe855bafafdf6dd2d4 (patch)
tree5424b84ea0a40c9619adce443ed7afe2eed0b9b1 /lib/Sema/TreeTransform.h
parent08942b48daa18b6de88e0eb2f0068fbeca98ea57 (diff)
[OPENMP] Initial parsing and sema analysis of 'taskyield' directive.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213355 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/TreeTransform.h')
-rw-r--r--lib/Sema/TreeTransform.h26
1 files changed, 21 insertions, 5 deletions
diff --git a/lib/Sema/TreeTransform.h b/lib/Sema/TreeTransform.h
index 0f1d24c440..741abb940d 100644
--- a/lib/Sema/TreeTransform.h
+++ b/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
//===----------------------------------------------------------------------===//