summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/TreeTransform.h
diff options
context:
space:
mode:
authorAlexander Musman <alexander.musman@gmail.com>2014-05-29 14:36:25 +0000
committerAlexander Musman <alexander.musman@gmail.com>2014-05-29 14:36:25 +0000
commitf0d76e7dc3e5ca3969e44fd40417a0e568493a4e (patch)
tree15545611be68d7376c675f090b963a20e7046ec5 /clang/lib/Sema/TreeTransform.h
parentfa5c0750f0fa18424de62878f0d717fee861cb9d (diff)
downloadbcm5719-llvm-f0d76e7dc3e5ca3969e44fd40417a0e568493a4e.tar.gz
bcm5719-llvm-f0d76e7dc3e5ca3969e44fd40417a0e568493a4e.zip
Parsing/Sema for OMPAlignedClause.
llvm-svn: 209816
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r--clang/lib/Sema/TreeTransform.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index d2683bec649..a13c3e442e2 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -1419,6 +1419,19 @@ public:
ColonLoc, EndLoc);
}
+ /// \brief Build a new OpenMP 'aligned' clause.
+ ///
+ /// By default, performs semantic analysis to build the new statement.
+ /// Subclasses may override this routine to provide different behavior.
+ OMPClause *RebuildOMPAlignedClause(ArrayRef<Expr *> VarList, Expr *Alignment,
+ SourceLocation StartLoc,
+ SourceLocation LParenLoc,
+ SourceLocation ColonLoc,
+ SourceLocation EndLoc) {
+ return getSema().ActOnOpenMPAlignedClause(VarList, Alignment, StartLoc,
+ LParenLoc, ColonLoc, EndLoc);
+ }
+
/// \brief Build a new OpenMP 'copyin' clause.
///
/// By default, performs semantic analysis to build the new statement.
@@ -6508,6 +6521,25 @@ TreeTransform<Derived>::TransformOMPLinearClause(OMPLinearClause *C) {
template<typename Derived>
OMPClause *
+TreeTransform<Derived>::TransformOMPAlignedClause(OMPAlignedClause *C) {
+ llvm::SmallVector<Expr *, 16> Vars;
+ Vars.reserve(C->varlist_size());
+ for (auto *VE : C->varlists()) {
+ ExprResult EVar = getDerived().TransformExpr(cast<Expr>(VE));
+ if (EVar.isInvalid())
+ return nullptr;
+ Vars.push_back(EVar.get());
+ }
+ ExprResult Alignment = getDerived().TransformExpr(C->getAlignment());
+ if (Alignment.isInvalid())
+ return nullptr;
+ return getDerived().RebuildOMPAlignedClause(
+ Vars, Alignment.get(), C->getLocStart(), C->getLParenLoc(),
+ C->getColonLoc(), C->getLocEnd());
+}
+
+template<typename Derived>
+OMPClause *
TreeTransform<Derived>::TransformOMPCopyinClause(OMPCopyinClause *C) {
llvm::SmallVector<Expr *, 16> Vars;
Vars.reserve(C->varlist_size());
OpenPOWER on IntegriCloud