diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2018-08-18 08:26:59 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2018-08-18 08:26:59 +0000 |
| commit | 5a4cb1eb0c4e2560397c009da45d57bb1ebb6135 (patch) | |
| tree | 4b0e7bd16ff6d9639594693aca2d6931a71b1dec /lib/Serialization/ASTReaderStmt.cpp | |
| parent | 46faa67da1d7e9450e8fa363f6633e2c68e33ff1 (diff) | |
Notes
Diffstat (limited to 'lib/Serialization/ASTReaderStmt.cpp')
| -rw-r--r-- | lib/Serialization/ASTReaderStmt.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/Serialization/ASTReaderStmt.cpp b/lib/Serialization/ASTReaderStmt.cpp index d9d780b25b31..570b554986f8 100644 --- a/lib/Serialization/ASTReaderStmt.cpp +++ b/lib/Serialization/ASTReaderStmt.cpp @@ -1856,7 +1856,7 @@ OMPClause *OMPClauseReader::readClause() { C = new (Context) OMPScheduleClause(); break; case OMPC_ordered: - C = new (Context) OMPOrderedClause(); + C = OMPOrderedClause::CreateEmpty(Context, Reader->Record.readInt()); break; case OMPC_nowait: C = new (Context) OMPNowaitClause(); @@ -1927,9 +1927,12 @@ OMPClause *OMPClauseReader::readClause() { case OMPC_flush: C = OMPFlushClause::CreateEmpty(Context, Reader->Record.readInt()); break; - case OMPC_depend: - C = OMPDependClause::CreateEmpty(Context, Reader->Record.readInt()); + case OMPC_depend: { + unsigned NumVars = Reader->Record.readInt(); + unsigned NumLoops = Reader->Record.readInt(); + C = OMPDependClause::CreateEmpty(Context, NumVars, NumLoops); break; + } case OMPC_device: C = new (Context) OMPDeviceClause(); break; @@ -2087,6 +2090,10 @@ void OMPClauseReader::VisitOMPScheduleClause(OMPScheduleClause *C) { void OMPClauseReader::VisitOMPOrderedClause(OMPOrderedClause *C) { C->setNumForLoops(Reader->Record.readSubExpr()); + for (unsigned I = 0, E = C->NumberOfLoops; I < E; ++I) + C->setLoopNumIterations(I, Reader->Record.readSubExpr()); + for (unsigned I = 0, E = C->NumberOfLoops; I < E; ++I) + C->setLoopCounter(I, Reader->Record.readSubExpr()); C->setLParenLoc(Reader->ReadSourceLocation()); } @@ -2395,10 +2402,11 @@ void OMPClauseReader::VisitOMPDependClause(OMPDependClause *C) { unsigned NumVars = C->varlist_size(); SmallVector<Expr *, 16> Vars; Vars.reserve(NumVars); - for (unsigned i = 0; i != NumVars; ++i) + for (unsigned I = 0; I != NumVars; ++I) Vars.push_back(Reader->Record.readSubExpr()); C->setVarRefs(Vars); - C->setCounterValue(Reader->Record.readSubExpr()); + for (unsigned I = 0, E = C->getNumLoops(); I < E; ++I) + C->setLoopData(I, Reader->Record.readSubExpr()); } void OMPClauseReader::VisitOMPDeviceClause(OMPDeviceClause *C) { |
