[llvm] [Profile] Add a more descriptive message to the bad_header error (PR #211281)

Hubert Tong via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 12 19:33:44 PDT 2026


================
@@ -650,7 +659,25 @@ Error RawInstrProfReader<IntPtrT>::readHeader(
 
   auto *Start = reinterpret_cast<const char *>(&Header);
   if (Start + ValueDataOffset > DataBuffer->getBufferEnd())
-    return error(instrprof_error::bad_header);
+    return error(
+        instrprof_error::header_size_mismatch,
+        ("Profile file size (" + Twine(DataBuffer->getBufferSize()) +
+         " bytes) smaller than expected (at least " + Twine(ValueDataOffset) +
+         " bytes = " +
+         Twine(BinaryIdSize) + "(BinaryIdSize) + " +
+         Twine(DataSize) + "(DataSize) + " +
+         Twine(CountersSize) + "(CountersSize) + " +
+         Twine(NumBitmapBytes) + "(NumBitmapBytes) + " +
+         Twine(UniformCountersSectionSize) + "(UniformCountersSectionSize) + " +
+         Twine(NamesSize) + "(NamesSize) + " +
+         Twine(VTableSectionSize) + "(VTableSectionSize) + " +
+         Twine(VTableNameSize) + "(VTableNameSize) + " +
+         Twine(DataOffset - BinaryIdSize + PaddingBytesBeforeCounters +
+               PaddingBytesAfterCounters + PaddingBytesAfterBitmapBytes +
+               PaddingBytesAfterUniformCounters + PaddingBytesAfterNames +
+               PaddingBytesAfterVTableProfData + PaddingBytesAfterVTableNames) +
+         "(Padding))")
----------------
hubert-reinterpretcast wrote:

This is misleading. Instead of accounting for the size of the file header separately, this includes it as "padding".

https://github.com/llvm/llvm-project/pull/211281


More information about the llvm-commits mailing list