diff options
Diffstat (limited to 'lib/Serialization/ASTWriterStmt.cpp')
| -rw-r--r-- | lib/Serialization/ASTWriterStmt.cpp | 44 | 
1 files changed, 43 insertions, 1 deletions
| diff --git a/lib/Serialization/ASTWriterStmt.cpp b/lib/Serialization/ASTWriterStmt.cpp index e980ce783f5e..ec822f02c67f 100644 --- a/lib/Serialization/ASTWriterStmt.cpp +++ b/lib/Serialization/ASTWriterStmt.cpp @@ -553,6 +553,7 @@ void ASTStmtWriter::VisitMemberExpr(MemberExpr *E) {    Writer.AddDeclRef(E->getMemberDecl(), Record);    Writer.AddSourceLocation(E->getMemberLoc(), Record);    Record.push_back(E->isArrow()); +  Writer.AddSourceLocation(E->getOperatorLoc(), Record);    Writer.AddDeclarationNameLoc(E->MemberDNLoc,                                 E->getMemberDecl()->getDeclName(), Record);    Code = serialization::EXPR_MEMBER; @@ -1744,6 +1745,7 @@ void OMPClauseWriter::VisitOMPProcBindClause(OMPProcBindClause *C) {  void OMPClauseWriter::VisitOMPScheduleClause(OMPScheduleClause *C) {    Record.push_back(C->getScheduleKind());    Writer->Writer.AddStmt(C->getChunkSize()); +  Writer->Writer.AddStmt(C->getHelperChunkSize());    Writer->Writer.AddSourceLocation(C->getLParenLoc(), Record);    Writer->Writer.AddSourceLocation(C->getScheduleKindLoc(), Record);    Writer->Writer.AddSourceLocation(C->getCommaLoc(), Record); @@ -1797,6 +1799,14 @@ void OMPClauseWriter::VisitOMPLastprivateClause(OMPLastprivateClause *C) {    Writer->Writer.AddSourceLocation(C->getLParenLoc(), Record);    for (auto *VE : C->varlists())      Writer->Writer.AddStmt(VE); +  for (auto *E : C->private_copies()) +    Writer->Writer.AddStmt(E); +  for (auto *E : C->source_exprs()) +    Writer->Writer.AddStmt(E); +  for (auto *E : C->destination_exprs()) +    Writer->Writer.AddStmt(E); +  for (auto *E : C->assignment_ops()) +    Writer->Writer.AddStmt(E);  }  void OMPClauseWriter::VisitOMPSharedClause(OMPSharedClause *C) { @@ -1814,15 +1824,32 @@ void OMPClauseWriter::VisitOMPReductionClause(OMPReductionClause *C) {    Writer->Writer.AddDeclarationNameInfo(C->getNameInfo(), Record);    for (auto *VE : C->varlists())      Writer->Writer.AddStmt(VE); +  for (auto *E : C->lhs_exprs()) +    Writer->Writer.AddStmt(E); +  for (auto *E : C->rhs_exprs()) +    Writer->Writer.AddStmt(E); +  for (auto *E : C->reduction_ops()) +    Writer->Writer.AddStmt(E);  }  void OMPClauseWriter::VisitOMPLinearClause(OMPLinearClause *C) {    Record.push_back(C->varlist_size());    Writer->Writer.AddSourceLocation(C->getLParenLoc(), Record);    Writer->Writer.AddSourceLocation(C->getColonLoc(), Record); -  for (auto *VE : C->varlists()) +  for (auto *VE : C->varlists()) { +    Writer->Writer.AddStmt(VE); +  } +  for (auto *VE : C->inits()) {      Writer->Writer.AddStmt(VE); +  } +  for (auto *VE : C->updates()) { +    Writer->Writer.AddStmt(VE); +  } +  for (auto *VE : C->finals()) { +    Writer->Writer.AddStmt(VE); +  }    Writer->Writer.AddStmt(C->getStep()); +  Writer->Writer.AddStmt(C->getCalcStep());  }  void OMPClauseWriter::VisitOMPAlignedClause(OMPAlignedClause *C) { @@ -1839,6 +1866,12 @@ void OMPClauseWriter::VisitOMPCopyinClause(OMPCopyinClause *C) {    Writer->Writer.AddSourceLocation(C->getLParenLoc(), Record);    for (auto *VE : C->varlists())      Writer->Writer.AddStmt(VE); +  for (auto *E : C->source_exprs()) +    Writer->Writer.AddStmt(E); +  for (auto *E : C->destination_exprs()) +    Writer->Writer.AddStmt(E); +  for (auto *E : C->assignment_ops()) +    Writer->Writer.AddStmt(E);  }  void OMPClauseWriter::VisitOMPCopyprivateClause(OMPCopyprivateClause *C) { @@ -1846,6 +1879,12 @@ void OMPClauseWriter::VisitOMPCopyprivateClause(OMPCopyprivateClause *C) {    Writer->Writer.AddSourceLocation(C->getLParenLoc(), Record);    for (auto *VE : C->varlists())      Writer->Writer.AddStmt(VE); +  for (auto *E : C->source_exprs()) +    Writer->Writer.AddStmt(E); +  for (auto *E : C->destination_exprs()) +    Writer->Writer.AddStmt(E); +  for (auto *E : C->assignment_ops()) +    Writer->Writer.AddStmt(E);  }  void OMPClauseWriter::VisitOMPFlushClause(OMPFlushClause *C) { @@ -1990,6 +2029,9 @@ void ASTStmtWriter::VisitOMPAtomicDirective(OMPAtomicDirective *D) {    Writer.AddStmt(D->getX());    Writer.AddStmt(D->getV());    Writer.AddStmt(D->getExpr()); +  Writer.AddStmt(D->getUpdateExpr()); +  Record.push_back(D->isXLHSInRHSPart() ? 1 : 0); +  Record.push_back(D->isPostfixUpdate() ? 1 : 0);    Code = serialization::STMT_OMP_ATOMIC_DIRECTIVE;  } | 
