X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FAsmParser%2FParser.cpp;h=2e76c0ecc45bcbd23fd82267f2d356d0465a8dae;hb=93a23a3bd468b78a9f550a21d70ce2525962f235;hp=9bc9b241666e1f83a84c46bdf88badbe881ab159;hpb=b12ab608fe80d5597090063ee3d72377d7560914;p=oota-llvm.git diff --git a/lib/AsmParser/Parser.cpp b/lib/AsmParser/Parser.cpp index 9bc9b241666..2e76c0ecc45 100644 --- a/lib/AsmParser/Parser.cpp +++ b/lib/AsmParser/Parser.cpp @@ -13,6 +13,7 @@ #include "llvm/AsmParser/Parser.h" #include "LLParser.h" +#include "llvm/ADT/STLExtras.h" #include "llvm/IR/Module.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/SourceMgr.h" @@ -21,25 +22,24 @@ #include using namespace llvm; -bool llvm::parseAssemblyInto(std::unique_ptr F, Module &M, - SMDiagnostic &Err) { +bool llvm::parseAssemblyInto(MemoryBufferRef F, Module &M, SMDiagnostic &Err) { SourceMgr SM; - StringRef Buf = F->getBuffer(); - SM.AddNewSourceBuffer(F.release(), SMLoc()); + std::unique_ptr Buf = MemoryBuffer::getMemBuffer(F, false); + SM.AddNewSourceBuffer(std::move(Buf), SMLoc()); - return LLParser(Buf, SM, Err, &M).Run(); + return LLParser(F.getBuffer(), SM, Err, &M).Run(); } -std::unique_ptr llvm::parseAssembly(std::unique_ptr F, +std::unique_ptr llvm::parseAssembly(MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context) { std::unique_ptr M = - make_unique(F->getBufferIdentifier(), Context); + make_unique(F.getBufferIdentifier(), Context); - if (parseAssemblyInto(std::move(F), *M, Err)) + if (parseAssemblyInto(F, *M, Err)) return nullptr; - return std::move(M); + return M; } std::unique_ptr llvm::parseAssemblyFile(StringRef Filename, @@ -53,14 +53,12 @@ std::unique_ptr llvm::parseAssemblyFile(StringRef Filename, return nullptr; } - return parseAssembly(std::move(FileOrErr.get()), Err, Context); + return parseAssembly(FileOrErr.get()->getMemBufferRef(), Err, Context); } std::unique_ptr llvm::parseAssemblyString(StringRef AsmString, SMDiagnostic &Err, LLVMContext &Context) { - std::unique_ptr F( - MemoryBuffer::getMemBuffer(AsmString, "")); - - return parseAssembly(std::move(F), Err, Context); + MemoryBufferRef F(AsmString, ""); + return parseAssembly(F, Err, Context); }