Changeset View
Changeset View
Standalone View
Standalone View
clang/lib/Serialization/ASTWriter.cpp
Show First 20 Lines • Show All 3,004 Lines • ▼ Show 20 Lines | void ASTWriter::WritePragmaDiagnosticMappings(const DiagnosticsEngine &Diag, | ||||
// Emit the state transitions. | // Emit the state transitions. | ||||
unsigned NumLocations = 0; | unsigned NumLocations = 0; | ||||
for (auto &FileIDAndFile : Diag.DiagStatesByLoc.Files) { | for (auto &FileIDAndFile : Diag.DiagStatesByLoc.Files) { | ||||
if (!FileIDAndFile.first.isValid() || | if (!FileIDAndFile.first.isValid() || | ||||
!FileIDAndFile.second.HasLocalTransitions) | !FileIDAndFile.second.HasLocalTransitions) | ||||
continue; | continue; | ||||
++NumLocations; | ++NumLocations; | ||||
SourceLocation Loc = Diag.SourceMgr->getComposedLoc(FileIDAndFile.first, 0); | AddFileID(FileIDAndFile.first, Record); | ||||
assert(!Loc.isInvalid() && "start loc for valid FileID is invalid"); | |||||
AddSourceLocation(Loc, Record); | |||||
Record.push_back(FileIDAndFile.second.StateTransitions.size()); | Record.push_back(FileIDAndFile.second.StateTransitions.size()); | ||||
for (auto &StatePoint : FileIDAndFile.second.StateTransitions) { | for (auto &StatePoint : FileIDAndFile.second.StateTransitions) { | ||||
Record.push_back(StatePoint.Offset); | Record.push_back(StatePoint.Offset); | ||||
AddDiagState(StatePoint.State, false); | AddDiagState(StatePoint.State, false); | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 3,933 Lines • Show Last 20 Lines |