10 #ifndef LLVM_DEBUGINFO_PDB_TPIHASHING_H
11 #define LLVM_DEBUGINFO_PDB_TPIHASHING_H
32 #define TYPE_RECORD(EnumName, EnumVal, Name) \
33 virtual Error visitKnownRecord(codeview::CVType &CVR, \
34 codeview::Name##Record &Record) override { \
35 visitKnownRecordImpl(CVR, Record); \
36 return Error::success(); \
38 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
39 #define MEMBER_RECORD(EnumName, EnumVal, Name)
40 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
41 #include "llvm/DebugInfo/CodeView/TypeRecords.def"
44 template <
typename RecordKind>
50 codeview::UdtSourceLineRecord &Rec);
52 codeview::UdtModSourceLineRecord &Rec);
53 void visitKnownRecordImpl(
codeview::CVType &CVR, codeview::ClassRecord &Rec);
55 void visitKnownRecordImpl(
codeview::CVType &CVR, codeview::UnionRecord &Rec);
62 : HashValues(HashValues), NumHashBuckets(NumHashBuckets) {}
79 Error errorInvalidHash() {
80 return make_error<RawError>(
95 #endif // LLVM_DEBUGINFO_PDB_TPIHASHING_H
CVRecord< TypeLeafKind > CVType
Error visitTypeBegin(codeview::CVType &CVR) override
Paired begin/end actions for all types.
static const uint32_t FirstNonSimpleIndex
TpiHashVerifier(msf::FixedStreamArray< support::ulittle32_t > &HashValues, uint32_t NumHashBuckets)
static std::string utohexstr(uint64_t X, bool LowerCase=false)
Lightweight error class with error context and mandatory checking.
Error visitKnownRecord(codeview::CVType &CVR, codeview::UdtSourceLineRecord &Rec) override