diff options
Diffstat (limited to 'lib/Serialization/ASTWriterStmt.cpp')
| -rw-r--r-- | lib/Serialization/ASTWriterStmt.cpp | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Serialization/ASTWriterStmt.cpp b/lib/Serialization/ASTWriterStmt.cpp index 6971339663f09..c5f4495d2f013 100644 --- a/lib/Serialization/ASTWriterStmt.cpp +++ b/lib/Serialization/ASTWriterStmt.cpp @@ -2001,6 +2001,27 @@ void OMPClauseWriter::VisitOMPTaskReductionClause(OMPTaskReductionClause *C) {      Record.AddStmt(E);  } +void OMPClauseWriter::VisitOMPInReductionClause(OMPInReductionClause *C) { +  Record.push_back(C->varlist_size()); +  VisitOMPClauseWithPostUpdate(C); +  Record.AddSourceLocation(C->getLParenLoc()); +  Record.AddSourceLocation(C->getColonLoc()); +  Record.AddNestedNameSpecifierLoc(C->getQualifierLoc()); +  Record.AddDeclarationNameInfo(C->getNameInfo()); +  for (auto *VE : C->varlists()) +    Record.AddStmt(VE); +  for (auto *VE : C->privates()) +    Record.AddStmt(VE); +  for (auto *E : C->lhs_exprs()) +    Record.AddStmt(E); +  for (auto *E : C->rhs_exprs()) +    Record.AddStmt(E); +  for (auto *E : C->reduction_ops()) +    Record.AddStmt(E); +  for (auto *E : C->taskgroup_descriptors()) +    Record.AddStmt(E); +} +  void OMPClauseWriter::VisitOMPLinearClause(OMPLinearClause *C) {    Record.push_back(C->varlist_size());    VisitOMPClauseWithPostUpdate(C); @@ -2081,6 +2102,7 @@ void OMPClauseWriter::VisitOMPDependClause(OMPDependClause *C) {  }  void OMPClauseWriter::VisitOMPDeviceClause(OMPDeviceClause *C) { +  VisitOMPClauseWithPreInit(C);    Record.AddStmt(C->getDevice());    Record.AddSourceLocation(C->getLParenLoc());  } @@ -2480,6 +2502,7 @@ void ASTStmtWriter::VisitOMPTaskgroupDirective(OMPTaskgroupDirective *D) {    VisitStmt(D);    Record.push_back(D->getNumClauses());    VisitOMPExecutableDirective(D); +  Record.AddStmt(D->getReductionRef());    Code = serialization::STMT_OMP_TASKGROUP_DIRECTIVE;  } @@ -2545,6 +2568,7 @@ void ASTStmtWriter::VisitOMPTargetUpdateDirective(OMPTargetUpdateDirective *D) {  void ASTStmtWriter::VisitOMPDistributeParallelForDirective(      OMPDistributeParallelForDirective *D) {    VisitOMPLoopDirective(D); +  Record.push_back(D->hasCancel() ? 1 : 0);    Code = serialization::STMT_OMP_DISTRIBUTE_PARALLEL_FOR_DIRECTIVE;  } @@ -2592,6 +2616,7 @@ void ASTStmtWriter::VisitOMPTeamsDistributeParallelForSimdDirective(  void ASTStmtWriter::VisitOMPTeamsDistributeParallelForDirective(      OMPTeamsDistributeParallelForDirective *D) {    VisitOMPLoopDirective(D); +  Record.push_back(D->hasCancel() ? 1 : 0);    Code = serialization::STMT_OMP_TEAMS_DISTRIBUTE_PARALLEL_FOR_DIRECTIVE;  } @@ -2611,6 +2636,7 @@ void ASTStmtWriter::VisitOMPTargetTeamsDistributeDirective(  void ASTStmtWriter::VisitOMPTargetTeamsDistributeParallelForDirective(      OMPTargetTeamsDistributeParallelForDirective *D) {    VisitOMPLoopDirective(D); +  Record.push_back(D->hasCancel() ? 1 : 0);    Code = serialization::STMT_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_FOR_DIRECTIVE;  }  | 
