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/Serialization | |
| 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/Serialization')
| -rw-r--r-- | clang/lib/Serialization/ASTReaderStmt.cpp | 13 | ||||
| -rw-r--r-- | clang/lib/Serialization/ASTWriterStmt.cpp | 9 | 
2 files changed, 22 insertions, 0 deletions
| diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index 594d029e0e5..9a201d0f69b 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -1692,6 +1692,9 @@ OMPClause *OMPClauseReader::readClause() {    case OMPC_shared:      C = OMPSharedClause::CreateEmpty(Context, Record[Idx++]);      break; +  case OMPC_copyin: +    C = OMPCopyinClause::CreateEmpty(Context, Record[Idx++]); +    break;    }    Visit(C);    C->setLocStart(Reader->ReadSourceLocation(Record, Idx)); @@ -1752,6 +1755,16 @@ void OMPClauseReader::VisitOMPSharedClause(OMPSharedClause *C) {    C->setVarRefs(Vars);  } +void OMPClauseReader::VisitOMPCopyinClause(OMPCopyinClause *C) { +  C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx)); +  unsigned NumVars = C->varlist_size(); +  SmallVector<Expr *, 16> Vars; +  Vars.reserve(NumVars); +  for (unsigned i = 0; i != NumVars; ++i) +    Vars.push_back(Reader->Reader.ReadSubExpr()); +  C->setVarRefs(Vars); +} +  //===----------------------------------------------------------------------===//  // OpenMP Directives.  //===----------------------------------------------------------------------===// diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp index 866b738d746..42b1dfb367f 100644 --- a/clang/lib/Serialization/ASTWriterStmt.cpp +++ b/clang/lib/Serialization/ASTWriterStmt.cpp @@ -1716,6 +1716,15 @@ void OMPClauseWriter::VisitOMPSharedClause(OMPSharedClause *C) {      Writer->Writer.AddStmt(I);  } +void OMPClauseWriter::VisitOMPCopyinClause(OMPCopyinClause *C) { +  Record.push_back(C->varlist_size()); +  Writer->Writer.AddSourceLocation(C->getLParenLoc(), Record); +  for (OMPCopyinClause::varlist_iterator I = C->varlist_begin(), +                                         E = C->varlist_end(); +       I != E; ++I) +    Writer->Writer.AddStmt(*I); +} +  //===----------------------------------------------------------------------===//  // OpenMP Directives.  //===----------------------------------------------------------------------===// | 

