From bae9a793fdf7d2dfa829eb98ed8c601680d24343 Mon Sep 17 00:00:00 2001 From: Alexey Bataev Date: Fri, 27 Jun 2014 10:37:06 +0000 Subject: [OPENMP] Parsing and sema analysis for 'copyprivate' clause. llvm-svn: 211886 --- clang/lib/Serialization/ASTReaderStmt.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'clang/lib/Serialization/ASTReaderStmt.cpp') diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index ea8d0f3ac9e..c94c43578fd 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -1724,6 +1724,9 @@ OMPClause *OMPClauseReader::readClause() { case OMPC_copyin: C = OMPCopyinClause::CreateEmpty(Context, Record[Idx++]); break; + case OMPC_copyprivate: + C = OMPCopyprivateClause::CreateEmpty(Context, Record[Idx++]); + break; } Visit(C); C->setLocStart(Reader->ReadSourceLocation(Record, Idx)); @@ -1871,6 +1874,16 @@ void OMPClauseReader::VisitOMPCopyinClause(OMPCopyinClause *C) { C->setVarRefs(Vars); } +void OMPClauseReader::VisitOMPCopyprivateClause(OMPCopyprivateClause *C) { + C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx)); + unsigned NumVars = C->varlist_size(); + SmallVector Vars; + Vars.reserve(NumVars); + for (unsigned i = 0; i != NumVars; ++i) + Vars.push_back(Reader->Reader.ReadSubExpr()); + C->setVarRefs(Vars); +} + //===----------------------------------------------------------------------===// // OpenMP Directives. //===----------------------------------------------------------------------===// -- cgit v1.2.3