Index: lib/Bitcode/NaCl/Analysis/NaClObjDump.cpp |
diff --git a/lib/Bitcode/NaCl/Analysis/NaClObjDump.cpp b/lib/Bitcode/NaCl/Analysis/NaClObjDump.cpp |
index f1606596baf46e9c93577f21d2ccc5d45718425b..fde01918c9c7ccb53b5d14327aa1a149fd1919a9 100644 |
--- a/lib/Bitcode/NaCl/Analysis/NaClObjDump.cpp |
+++ b/lib/Bitcode/NaCl/Analysis/NaClObjDump.cpp |
@@ -3535,14 +3535,20 @@ bool NaClObjDump(MemoryBufferRef MemBuf, raw_ostream &Output, |
// Read header and verify it is good. |
NaClBitcodeHeader Header; |
- if (Header.Read(HeaderPtr, EndBufPtr) || !Header.IsSupported()) { |
+ if (Header.Read(HeaderPtr, EndBufPtr)) { |
ObjDump.Error() << "Invalid PNaCl bitcode header.\n"; |
return true; |
} |
+ if (!Header.IsSupported()) { |
+ ObjDump.Warning() << Header.Unsupported(); |
+ if (!Header.IsReadable()) { |
+ ObjDump.Error() << "Invalid PNaCl bitcode header.\n"; |
+ return true; |
+ } |
+ } |
// Create a bitstream reader to read the bitcode file. |
- NaClBitstreamReader InputStreamFile(BufPtr, EndBufPtr, |
- Header.getHeaderSize()); |
+ NaClBitstreamReader InputStreamFile(BufPtr, EndBufPtr, Header); |
NaClBitstreamCursor InputStream(InputStreamFile); |
// Parse the the bitcode file. |