diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-17 21:36:47 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-17 21:36:47 +0000 |
commit | f7aed8017ad5c91a71e4e443ffc04379c2fefedb (patch) | |
tree | 3f42f4a72289defaaba263afb10381bc3df10eb5 /llvm/lib/AsmParser/Parser.cpp | |
parent | 2bb0c94d42a3e113be59d2e608f8d1200e2c3ae8 (diff) | |
download | bcm5719-llvm-f7aed8017ad5c91a71e4e443ffc04379c2fefedb.tar.gz bcm5719-llvm-f7aed8017ad5c91a71e4e443ffc04379c2fefedb.zip |
Pass a std::uinque_ptr to ParseAssembly to make the ownership explicit. NFC.
llvm-svn: 215852
Diffstat (limited to 'llvm/lib/AsmParser/Parser.cpp')
-rw-r--r-- | llvm/lib/AsmParser/Parser.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/llvm/lib/AsmParser/Parser.cpp b/llvm/lib/AsmParser/Parser.cpp index 91bb51c2422..4cc94cb270d 100644 --- a/llvm/lib/AsmParser/Parser.cpp +++ b/llvm/lib/AsmParser/Parser.cpp @@ -21,20 +21,19 @@ #include <system_error> using namespace llvm; -Module *llvm::ParseAssembly(MemoryBuffer *F, - Module *M, - SMDiagnostic &Err, - LLVMContext &Context) { +Module *llvm::ParseAssembly(std::unique_ptr<MemoryBuffer> F, Module *M, + SMDiagnostic &Err, LLVMContext &Context) { SourceMgr SM; - SM.AddNewSourceBuffer(F, SMLoc()); + MemoryBuffer *Buf = F.get(); + SM.AddNewSourceBuffer(F.release(), SMLoc()); // If we are parsing into an existing module, do it. if (M) - return LLParser(F, SM, Err, M).Run() ? nullptr : M; + return LLParser(Buf, SM, Err, M).Run() ? nullptr : M; // Otherwise create a new module. - std::unique_ptr<Module> M2(new Module(F->getBufferIdentifier(), Context)); - if (LLParser(F, SM, Err, M2.get()).Run()) + std::unique_ptr<Module> M2(new Module(Buf->getBufferIdentifier(), Context)); + if (LLParser(Buf, SM, Err, M2.get()).Run()) return nullptr; return M2.release(); } @@ -49,7 +48,7 @@ Module *llvm::ParseAssemblyFile(const std::string &Filename, SMDiagnostic &Err, return nullptr; } - return ParseAssembly(FileOrErr.get().release(), nullptr, Err, Context); + return ParseAssembly(std::move(FileOrErr.get()), nullptr, Err, Context); } Module *llvm::ParseAssemblyString(const char *AsmString, Module *M, @@ -57,5 +56,5 @@ Module *llvm::ParseAssemblyString(const char *AsmString, Module *M, MemoryBuffer *F = MemoryBuffer::getMemBuffer(StringRef(AsmString), "<string>"); - return ParseAssembly(F, M, Err, Context); + return ParseAssembly(std::unique_ptr<MemoryBuffer>(F), M, Err, Context); } |