Index: src/PNaClTranslator.cpp |
diff --git a/src/PNaClTranslator.cpp b/src/PNaClTranslator.cpp |
index 35108ccc560410fcb01575c3b3b65144b50c883e..488a4f174159b60d12f470884b4e8342b1b4bef9 100644 |
--- a/src/PNaClTranslator.cpp |
+++ b/src/PNaClTranslator.cpp |
@@ -12,7 +12,6 @@ |
// |
//===----------------------------------------------------------------------===// |
-#include "PNaClTranslator.h" |
#include "IceCfg.h" |
#include "IceCfgNode.h" |
#include "IceClFlags.h" |
@@ -29,13 +28,13 @@ |
#include "llvm/IR/DataLayout.h" |
#include "llvm/IR/LLVMContext.h" |
#include "llvm/IR/Module.h" |
+#include "llvm/IR/ValueHandle.h" |
#include "llvm/Support/Format.h" |
#include "llvm/Support/MemoryBuffer.h" |
#include "llvm/Support/raw_ostream.h" |
-#include "llvm/Support/ValueHandle.h" |
-#include <vector> |
#include <cassert> |
+#include <vector> |
using namespace llvm; |
@@ -66,13 +65,12 @@ public: |
setErrStream(Translator.getContext()->getStrDump()); |
} |
- virtual ~TopLevelParser() {} |
- LLVM_OVERRIDE; |
+ ~TopLevelParser() override {} |
Ice::Translator &getTranslator() { return Translator; } |
// Generates error with given Message. Always returns true. |
- virtual bool Error(const std::string &Message) LLVM_OVERRIDE { |
+ bool Error(const std::string &Message) override { |
ErrorStatus = true; |
++NumErrors; |
NaClBitcodeParser::Error(Message); |
@@ -253,7 +251,7 @@ private: |
// The translator associated with the parser. |
Ice::Translator &Translator; |
// The parsed module. |
- OwningPtr<Module> Mod; |
+ std::unique_ptr<Module> Mod; |
// The data layout to use. |
DataLayout DL; |
// The bitcode header. |
@@ -281,7 +279,7 @@ private: |
// references to global variable addresses. |
Type *GlobalVarPlaceHolderType; |
- virtual bool ParseBlock(unsigned BlockID) LLVM_OVERRIDE; |
+ bool ParseBlock(unsigned BlockID) override; |
/// Reports that type ID is undefined, and then returns |
/// the void type. |
@@ -339,7 +337,7 @@ public: |
BlockParserBaseClass(unsigned BlockID, TopLevelParser *Context) |
: NaClBitcodeParser(BlockID, Context), Context(Context) {} |
- virtual ~BlockParserBaseClass() LLVM_OVERRIDE {} |
+ ~BlockParserBaseClass() override {} |
protected: |
// The context parser that contains the decoded state. |
@@ -356,7 +354,7 @@ protected: |
const Ice::ClFlags &getFlags() const { return getTranslator().getFlags(); } |
// Generates an error Message with the bit address prefixed to it. |
- virtual bool Error(const std::string &Message) LLVM_OVERRIDE { |
+ bool Error(const std::string &Message) override { |
uint64_t Bit = Record.GetStartBit() + Context->getHeaderSize() * 8; |
std::string Buffer; |
raw_string_ostream StrBuf(Buffer); |
@@ -367,11 +365,11 @@ protected: |
// Default implementation. Reports that block is unknown and skips |
// its contents. |
- virtual bool ParseBlock(unsigned BlockID) LLVM_OVERRIDE; |
+ bool ParseBlock(unsigned BlockID) override; |
// Default implementation. Reports that the record is not |
// understood. |
- virtual void ProcessRecord() LLVM_OVERRIDE; |
+ void ProcessRecord() override; |
// Checks if the size of the record is Size. Return true if valid. |
// Otherwise generates an error and returns false. |
@@ -465,14 +463,14 @@ public: |
TypesParser(unsigned BlockID, BlockParserBaseClass *EnclosingParser) |
: BlockParserBaseClass(BlockID, EnclosingParser), NextTypeId(0) {} |
- ~TypesParser() LLVM_OVERRIDE {} |
+ ~TypesParser() override {} |
private: |
// The type ID that will be associated with the next type defining |
// record in the types block. |
unsigned NextTypeId; |
- virtual void ProcessRecord() LLVM_OVERRIDE; |
+ void ProcessRecord() override; |
}; |
void TypesParser::ProcessRecord() { |
@@ -565,7 +563,7 @@ public: |
NextGlobalID = Context->getNumFunctionIDs(); |
} |
- virtual ~GlobalsParser() LLVM_OVERRIDE {} |
+ ~GlobalsParser() override {} |
private: |
// Holds the sequence of initializers for the global. |
@@ -584,7 +582,7 @@ private: |
// The index of the next global variable. |
unsigned NextGlobalID; |
- virtual void ExitBlock() LLVM_OVERRIDE { |
+ void ExitBlock() override { |
verifyNoMissingInitializers(); |
unsigned NumIDs = Context->getNumGlobalValueIDs(); |
if (NextGlobalID < NumIDs) { |
@@ -598,7 +596,7 @@ private: |
BlockParserBaseClass::ExitBlock(); |
} |
- virtual void ProcessRecord() LLVM_OVERRIDE; |
+ void ProcessRecord() override; |
// Checks if the number of initializers needed is the same as the |
// number found in the bitcode file. If different, and error message |
@@ -773,7 +771,7 @@ public: |
ValuesymtabParser(unsigned BlockID, BlockParserBaseClass *EnclosingParser) |
: BlockParserBaseClass(BlockID, EnclosingParser) {} |
- virtual ~ValuesymtabParser() LLVM_OVERRIDE {} |
+ ~ValuesymtabParser() override {} |
protected: |
typedef SmallString<128> StringType; |
@@ -786,7 +784,7 @@ protected: |
private: |
- virtual void ProcessRecord() LLVM_OVERRIDE; |
+ void ProcessRecord() override; |
void ConvertToString(StringType &ConvertedName) { |
const NaClBitcodeRecord::RecordVector &Values = Record.GetValues(); |
@@ -853,7 +851,7 @@ public: |
} |
} |
- ~FunctionParser() LLVM_OVERRIDE; |
+ ~FunctionParser() override; |
// Set the next constant ID to the given constant C. |
void setNextConstantID(Ice::Constant *C) { |
@@ -2388,13 +2386,14 @@ 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 |