Update subzero bitcode parser to use new API for bitstream reading.
Dependent on https://codereview.chromium.org/1122423005
being committed first.
BUG=https://code.google.com/p/nativeclient/issues/detail?id=4164
R=jvoung@chromium.org
Review URL: https://codereview.chromium.org/1130313002
diff --git a/src/PNaClTranslator.cpp b/src/PNaClTranslator.cpp
index 42a207b..8c15807 100644
--- a/src/PNaClTranslator.cpp
+++ b/src/PNaClTranslator.cpp
@@ -2988,14 +2988,22 @@
// Read header and verify it is good.
NaClBitcodeHeader Header;
- if (Header.Read(MemObj.get()) || !Header.IsSupported()) {
+ if (Header.Read(MemObj.get())) {
errs() << "Invalid PNaCl bitcode header.\n";
ErrorStatus.assign(EC_Bitcode);
return;
}
+ if (!Header.IsSupported()) {
+ errs() << Header.Unsupported();
+ if (!Header.IsReadable()) {
+ errs() << "Invalid PNaCl bitcode header.\n";
+ ErrorStatus.assign(EC_Bitcode);
+ return;
+ }
+ }
// Create a bitstream reader to read the bitcode file.
- NaClBitstreamReader InputStreamFile(MemObj.release(), Header.getHeaderSize());
+ NaClBitstreamReader InputStreamFile(MemObj.release(), Header);
NaClBitstreamCursor InputStream(InputStreamFile);
TopLevelParser Parser(*this, InputStream, ErrorStatus);