diff options
-rw-r--r-- | llvm/lib/DebugInfo/PDB/Raw/TpiStream.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/DebugInfo/PDB/Raw/TpiStream.cpp b/llvm/lib/DebugInfo/PDB/Raw/TpiStream.cpp index feb6f2b88d1..016c51b8f4e 100644 --- a/llvm/lib/DebugInfo/PDB/Raw/TpiStream.cpp +++ b/llvm/lib/DebugInfo/PDB/Raw/TpiStream.cpp @@ -118,7 +118,7 @@ private: template <typename T> Error verify(T &Rec) { uint32_t Hash = getTpiHash(Rec, *RawRecord); if (Hash % NumHashBuckets != HashValues[Index]) - return make_error<RawError>(raw_error_code::invalid_tpi_hash); + return errorInvalidHash(); return Error::success(); } @@ -127,10 +127,16 @@ private: support::endian::write32le(Buf, Rec.getUDT().getIndex()); uint32_t Hash = hashStringV1(StringRef(Buf, 4)); if (Hash % NumHashBuckets != HashValues[Index]) - return make_error<RawError>(raw_error_code::invalid_tpi_hash); + return errorInvalidHash(); return Error::success(); } + Error errorInvalidHash() { + return make_error<RawError>( + raw_error_code::invalid_tpi_hash, + "Type index is 0x" + utohexstr(TypeIndex::FirstNonSimpleIndex + Index)); + } + FixedStreamArray<support::ulittle32_t> HashValues; const CVRecord<TypeLeafKind> *RawRecord; uint32_t NumHashBuckets; |