diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2014-03-31 03:36:38 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2014-03-31 03:36:38 +0000 |
commit | d48bcd8a4693b4adedd1db4be64a6998d490fa9a (patch) | |
tree | 74e5c8eb6bb796ab67ab519ddbc8362fc1f1c6a8 /clang/lib/AST/Stmt.cpp | |
parent | 79cfed55fc923b137a1a41702534b6830c4f5851 (diff) | |
download | bcm5719-llvm-d48bcd8a4693b4adedd1db4be64a6998d490fa9a.tar.gz bcm5719-llvm-d48bcd8a4693b4adedd1db4be64a6998d490fa9a.zip |
[OPENMP] Implemented 'copyin' clause
llvm-svn: 205164
Diffstat (limited to 'clang/lib/AST/Stmt.cpp')
-rw-r--r-- | clang/lib/AST/Stmt.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/clang/lib/AST/Stmt.cpp b/clang/lib/AST/Stmt.cpp index 8da7956aed2..a03ef00ce76 100644 --- a/clang/lib/AST/Stmt.cpp +++ b/clang/lib/AST/Stmt.cpp @@ -1192,6 +1192,28 @@ OMPSharedClause *OMPSharedClause::CreateEmpty(const ASTContext &C, return new (Mem) OMPSharedClause(N); } +OMPCopyinClause *OMPCopyinClause::Create(const ASTContext &C, + SourceLocation StartLoc, + SourceLocation LParenLoc, + SourceLocation EndLoc, + ArrayRef<Expr *> VL) { + void *Mem = C.Allocate(llvm::RoundUpToAlignment(sizeof(OMPCopyinClause), + llvm::alignOf<Expr *>()) + + sizeof(Expr *) * VL.size()); + OMPCopyinClause *Clause = new (Mem) OMPCopyinClause(StartLoc, LParenLoc, + EndLoc, VL.size()); + Clause->setVarRefs(VL); + return Clause; +} + +OMPCopyinClause *OMPCopyinClause::CreateEmpty(const ASTContext &C, + unsigned N) { + void *Mem = C.Allocate(llvm::RoundUpToAlignment(sizeof(OMPCopyinClause), + llvm::alignOf<Expr *>()) + + sizeof(Expr *) * N); + return new (Mem) OMPCopyinClause(N); +} + void OMPExecutableDirective::setClauses(ArrayRef<OMPClause *> Clauses) { assert(Clauses.size() == getNumClauses() && "Number of clauses is not the same as the preallocated buffer"); |