Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp
Show First 20 Lines • Show All 254 Lines • ▼ Show 20 Lines | uint32_t SymbolCache::getNumCompilands() const { | ||||
return Dbi->modules().getModuleCount(); | return Dbi->modules().getModuleCount(); | ||||
} | } | ||||
SymIndexId SymbolCache::getOrCreateGlobalSymbolByOffset(uint32_t Offset) { | SymIndexId SymbolCache::getOrCreateGlobalSymbolByOffset(uint32_t Offset) { | ||||
auto Iter = GlobalOffsetToSymbolId.find(Offset); | auto Iter = GlobalOffsetToSymbolId.find(Offset); | ||||
if (Iter != GlobalOffsetToSymbolId.end()) | if (Iter != GlobalOffsetToSymbolId.end()) | ||||
return Iter->second; | return Iter->second; | ||||
SymbolStream &SS = cantFail(Session.getPDBFile().getPDBSymbolStream()); | SymbolStream &SS = llvm_cantFail(Session.getPDBFile().getPDBSymbolStream()); | ||||
CVSymbol CVS = SS.readRecord(Offset); | CVSymbol CVS = SS.readRecord(Offset); | ||||
SymIndexId Id = 0; | SymIndexId Id = 0; | ||||
switch (CVS.kind()) { | switch (CVS.kind()) { | ||||
case SymbolKind::S_UDT: { | case SymbolKind::S_UDT: { | ||||
UDTSym US = cantFail(SymbolDeserializer::deserializeAs<UDTSym>(CVS)); | UDTSym US = llvm_cantFail(SymbolDeserializer::deserializeAs<UDTSym>(CVS)); | ||||
Id = createSymbol<NativeTypeTypedef>(std::move(US)); | Id = createSymbol<NativeTypeTypedef>(std::move(US)); | ||||
break; | break; | ||||
} | } | ||||
default: | default: | ||||
Id = createSymbolPlaceholder(); | Id = createSymbolPlaceholder(); | ||||
break; | break; | ||||
} | } | ||||
if (Id != 0) { | if (Id != 0) { | ||||
Show All 23 Lines |