#include "llvm/DebugInfo/PDB/Native/GlobalsStream.h"
#include "llvm/DebugInfo/CodeView/RecordName.h"
#include "llvm/DebugInfo/MSF/MappedBlockStream.h"
#include "llvm/DebugInfo/PDB/Native/Hash.h"
#include "llvm/DebugInfo/PDB/Native/RawError.h"
#include "llvm/DebugInfo/PDB/Native/SymbolStream.h"
#include "llvm/Support/BinaryStreamReader.h"
#include "llvm/Support/Error.h"
#include <algorithm>
usingnamespacellvm;
usingnamespacellvm::msf;
usingnamespacellvm::pdb;
GlobalsStream::GlobalsStream(std::unique_ptr<MappedBlockStream> Stream)
: … { … }
GlobalsStream::~GlobalsStream() = default;
Error GlobalsStream::reload() { … }
std::vector<std::pair<uint32_t, codeview::CVSymbol>>
GlobalsStream::findRecordsByName(StringRef Name,
const SymbolStream &Symbols) const { … }
static Error checkHashHdrVersion(const GSIHashHeader *HashHdr) { … }
static Error readGSIHashHeader(const GSIHashHeader *&HashHdr,
BinaryStreamReader &Reader) { … }
static Error readGSIHashRecords(FixedStreamArray<PSHashRecord> &HashRecords,
const GSIHashHeader *HashHdr,
BinaryStreamReader &Reader) { … }
static Error
readGSIHashBuckets(FixedStreamArray<support::ulittle32_t> &HashBuckets,
FixedStreamArray<support::ulittle32_t> &HashBitmap,
const GSIHashHeader *HashHdr,
MutableArrayRef<int32_t> BucketMap,
BinaryStreamReader &Reader) { … }
Error GSIHashTable::read(BinaryStreamReader &Reader) { … }