return "End of File";
case instrprof_error::bad_magic:
return "Invalid file format (bad magic)";
+ case instrprof_error::bad_header:
+ return "Invalid header";
case instrprof_error::unsupported_version:
return "Unsupported format version";
case instrprof_error::too_large:
if (Buffer->getBufferSize() < sizeof(uint64_t)) {
Result.reset(new TextInstrProfReader(Buffer));
- Result->readHeader();
- return instrprof_error::success;
+ return Result->readHeader();
}
uint64_t Magic = *(uint64_t *)Buffer->getBufferStart();
Result.reset(new RawInstrProfReader(Buffer));
else
Result.reset(new TextInstrProfReader(Buffer));
- Result->readHeader();
- return instrprof_error::success;
+ return Result->readHeader();
}
void InstrProfIterator::Increment() {
error_code RawInstrProfReader::readHeader() {
if (DataBuffer->getBufferSize() < sizeof(RawHeader))
- return error(instrprof_error::malformed);
+ return error(instrprof_error::bad_header);
const RawHeader *Header = (RawHeader *)DataBuffer->getBufferStart();
if (Header->Magic == getRawMagic())
ShouldSwapBytes = false;
else {
if (sys::SwapByteOrder(Header->Magic) != getRawMagic())
- return error(instrprof_error::malformed);
+ return error(instrprof_error::bad_magic);
ShouldSwapBytes = true;
}
size_t FileSize = NamesOffset + sizeof(char) * NamesSize;
if (FileSize != DataBuffer->getBufferSize())
- return error(instrprof_error::malformed);
+ return error(instrprof_error::bad_header);
Data = (ProfileData *)(DataBuffer->getBufferStart() + DataOffset);
DataEnd = Data + DataSize;
--- /dev/null
+RUN: printf "warforpl" > %t
+RUN: not llvm-profdata show %t 2>&1 | FileCheck %s
+RUN: printf "lprofraw" > %t
+RUN: not llvm-profdata show %t 2>&1 | FileCheck %s
+
+CHECK: error: {{.+}}: Invalid header