| 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..94af2021f881b5c210c7729d005f14fe4dc194fa 100644
|
| --- a/lib/Bitcode/NaCl/Analysis/NaClObjDump.cpp
|
| +++ b/lib/Bitcode/NaCl/Analysis/NaClObjDump.cpp
|
| @@ -3535,14 +3535,21 @@ 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(
|
| + getNonStreamedMemoryObject(BufPtr, EndBufPtr), Header);
|
| NaClBitstreamCursor InputStream(InputStreamFile);
|
|
|
| // Parse the the bitcode file.
|
|
|