| Index: src/PNaClTranslator.cpp
|
| diff --git a/src/PNaClTranslator.cpp b/src/PNaClTranslator.cpp
|
| index 042b7fe723dac940836273f2f9da7e288db680cb..9c1b65fd6d0b71d9a3c07c4a07ddff423a571761 100644
|
| --- a/src/PNaClTranslator.cpp
|
| +++ b/src/PNaClTranslator.cpp
|
| @@ -12,6 +12,7 @@
|
| //
|
| //===----------------------------------------------------------------------===//
|
|
|
| +#include "llvm/ADT/SmallString.h"
|
| #include "llvm/Analysis/NaCl/PNaClABIProps.h"
|
| #include "llvm/Bitcode/NaCl/NaClBitcodeDecoders.h"
|
| #include "llvm/Bitcode/NaCl/NaClBitcodeHeader.h"
|
| @@ -35,6 +36,8 @@
|
| #include "IceTypeConverter.h"
|
| #include "PNaClTranslator.h"
|
|
|
| +#include <memory>
|
| +
|
| namespace {
|
| using namespace llvm;
|
|
|
| @@ -2827,14 +2830,15 @@ bool TopLevelParser::ParseBlock(unsigned BlockID) {
|
| namespace Ice {
|
|
|
| void PNaClTranslator::translate(const std::string &IRFilename) {
|
| - OwningPtr<MemoryBuffer> MemBuf;
|
| - if (error_code ec =
|
| - MemoryBuffer::getFileOrSTDIN(IRFilename.c_str(), MemBuf)) {
|
| - errs() << "Error reading '" << IRFilename << "': " << ec.message() << "\n";
|
| + ErrorOr<std::unique_ptr<MemoryBuffer>> ErrOrFile =
|
| + MemoryBuffer::getFileOrSTDIN(IRFilename);
|
| + if (std::error_code EC = ErrOrFile.getError()) {
|
| + errs() << "Error reading '" << IRFilename << "': " << EC.message() << "\n";
|
| ErrorStatus = true;
|
| return;
|
| }
|
|
|
| + std::unique_ptr<MemoryBuffer> MemBuf(ErrOrFile.get().release());
|
| if (MemBuf->getBufferSize() % 4 != 0) {
|
| errs() << IRFilename
|
| << ": Bitcode stream should be a multiple of 4 bytes in length.\n";
|
|
|