diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2014-07-18 07:47:19 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2014-07-18 07:47:19 +0000 |
commit | 27b4c37d4a34875969fb2afe855bafafdf6dd2d4 (patch) | |
tree | 5424b84ea0a40c9619adce443ed7afe2eed0b9b1 /lib/Sema/TreeTransform.h | |
parent | 08942b48daa18b6de88e0eb2f0068fbeca98ea57 (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.h | 26 |
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 //===----------------------------------------------------------------------===// |