Index: lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp |
diff --git a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp |
index 41acb6f999cd7bd92b53a1762fb9d8bfdf289ce8..e8ef0e6d9e8cfbe5a6cb47ebd2c80154c9d94472 100644 |
--- a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp |
+++ b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp |
@@ -997,7 +997,7 @@ bool NaClBitcodeReader::ParseBitcodeInto(Module *M) { |
M->setDataLayout("e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-" |
"f32:32:32-f64:64:64-p:32:32:32-v128:32:32"); |
- if (InitStream()) return Error(Header.Unsupported()); |
+ if (InitStream()) return true; // InitSream will set the error string. |
// We expect a number of well-defined blocks, though we don't necessarily |
// need to understand them all. |
@@ -1772,22 +1772,26 @@ bool NaClBitcodeReader::InitStreamFromBuffer() { |
return Error("Bitcode stream should be a multiple of 4 bytes in length"); |
if (Header.Read(BufPtr, BufEnd)) |
- return Error("Invalid PNaCl bitcode header"); |
+ return Error(Header.Unsupported()); |
StreamFile.reset(new NaClBitstreamReader(BufPtr, BufEnd)); |
Stream.init(*StreamFile); |
- return AcceptHeader(); |
+ if (AcceptHeader()) |
+ return Error(Header.Unsupported()); |
+ return false; |
} |
bool NaClBitcodeReader::InitLazyStream() { |
StreamingMemoryObject *Bytes = new StreamingMemoryObject(LazyStreamer); |
if (Header.Read(Bytes)) |
- return Error("Invalid PNaCl bitcode header"); |
+ return Error(Header.Unsupported()); |
StreamFile.reset(new NaClBitstreamReader(Bytes, Header.getHeaderSize())); |
Stream.init(*StreamFile); |
- return AcceptHeader(); |
+ if (AcceptHeader()) |
+ return Error(Header.Unsupported()); |
+ return false; |
} |
//===----------------------------------------------------------------------===// |