25 std::vector<codeview::SymbolKind> Kinds)
26 : Index(0), Session(PDBSession) {
29 for (
uint32_t Off : GS.getGlobalsTable()) {
33 MatchOffsets.push_back(Off);
38 return static_cast<uint32_t>(MatchOffsets.size());
41std::unique_ptr<PDBSymbol>
43 if (
N >= MatchOffsets.size())
CVRecord is a fat pointer (base + size pair) to a symbol or type record.
uint32_t getChildCount() const override
NativeEnumGlobals(NativeSession &Session, std::vector< codeview::SymbolKind > Kinds)
std::unique_ptr< PDBSymbol > getChildAtIndex(uint32_t Index) const override
std::unique_ptr< PDBSymbol > getNext() override
SymbolCache & getSymbolCache()
Expected< GlobalsStream & > getPDBGlobalsStream()
Expected< SymbolStream & > getPDBSymbolStream()
std::unique_ptr< PDBSymbol > getSymbolById(SymIndexId SymbolId) const
SymIndexId getOrCreateGlobalSymbolByOffset(uint32_t Offset)
This is an optimization pass for GlobalISel generic memory operations.
void cantFail(Error Err, const char *Msg=nullptr)
Report a fatal error if Err is a failure value.
bool is_contained(R &&Range, const E &Element)
Returns true if Element is found in Range.