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 | 68446b72530b7b8badf295a350de43265dbec06a (patch) | |
tree | a4c0e485fde8c4ef174df6e53e7f1cf9b4a8cfb9 /clang/lib/Sema/TreeTransform.h | |
parent | 05c30880b6590bc7ca7ead689d2124994f795ffe (diff) | |
download | bcm5719-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.h | 26 |
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 //===----------------------------------------------------------------------===// |