diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-08-21 20:44:56 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-08-21 20:44:56 +0000 |
commit | 1961f14cf965e63d944d8888a089067cde142d10 (patch) | |
tree | 22b9817765f165fa1d6f170c4c029b48e7c8c718 /llvm/lib | |
parent | e423ed36f064e0830040c623f2f0a66df1c20814 (diff) | |
download | bcm5719-llvm-1961f14cf965e63d944d8888a089067cde142d10.tar.gz bcm5719-llvm-1961f14cf965e63d944d8888a089067cde142d10.zip |
Explicitly pass ownership of the MemoryBuffer to AddNewSourceBuffer using std::unique_ptr
llvm-svn: 216223
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/AsmParser/Parser.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp | 10 | ||||
-rw-r--r-- | llvm/lib/MC/MCParser/AsmParser.cpp | 12 | ||||
-rw-r--r-- | llvm/lib/Object/IRObjectFile.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Support/SourceMgr.cpp | 7 | ||||
-rw-r--r-- | llvm/lib/Support/YAMLParser.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/TableGen/Main.cpp | 3 |
7 files changed, 19 insertions, 25 deletions
diff --git a/llvm/lib/AsmParser/Parser.cpp b/llvm/lib/AsmParser/Parser.cpp index 9bc9b241666..d2384bd978d 100644 --- a/llvm/lib/AsmParser/Parser.cpp +++ b/llvm/lib/AsmParser/Parser.cpp @@ -25,7 +25,7 @@ bool llvm::parseAssemblyInto(std::unique_ptr<MemoryBuffer> F, Module &M, SMDiagnostic &Err) { SourceMgr SM; StringRef Buf = F->getBuffer(); - SM.AddNewSourceBuffer(F.release(), SMLoc()); + SM.AddNewSourceBuffer(std::move(F), SMLoc()); return LLParser(Buf, SM, Err, &M).Run(); } diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp index 7d0cb6b45d1..35a2842c70f 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp @@ -110,14 +110,12 @@ void AsmPrinter::EmitInlineAsm(StringRef Str, const MDNode *LocMDNode, HasDiagHandler = true; } - MemoryBuffer *Buffer; - if (isNullTerminated) - Buffer = MemoryBuffer::getMemBuffer(Str, "<inline asm>"); - else - Buffer = MemoryBuffer::getMemBufferCopy(Str, "<inline asm>"); + std::unique_ptr<MemoryBuffer> Buffer( + isNullTerminated ? MemoryBuffer::getMemBuffer(Str, "<inline asm>") + : MemoryBuffer::getMemBufferCopy(Str, "<inline asm>")); // Tell SrcMgr about this buffer, it takes ownership of the buffer. - SrcMgr.AddNewSourceBuffer(Buffer, SMLoc()); + SrcMgr.AddNewSourceBuffer(std::move(Buffer), SMLoc()); std::unique_ptr<MCAsmParser> Parser( createMCAsmParser(SrcMgr, OutContext, OutStreamer, *MAI)); diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index aafc5e1850e..5e44266e26e 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -2123,8 +2123,8 @@ bool AsmParser::handleMacroEntry(const MCAsmMacro *M, SMLoc NameLoc) { // instantiation. OS << ".endmacro\n"; - MemoryBuffer *Instantiation = - MemoryBuffer::getMemBufferCopy(OS.str(), "<instantiation>"); + std::unique_ptr<MemoryBuffer> Instantiation( + MemoryBuffer::getMemBufferCopy(OS.str(), "<instantiation>")); // Create the macro instantiation object and add to the current macro // instantiation stack. @@ -2134,7 +2134,7 @@ bool AsmParser::handleMacroEntry(const MCAsmMacro *M, SMLoc NameLoc) { ActiveMacros.push_back(MI); // Jump to the macro instantiation and prime the lexer. - CurBuffer = SrcMgr.AddNewSourceBuffer(Instantiation, SMLoc()); + CurBuffer = SrcMgr.AddNewSourceBuffer(std::move(Instantiation), SMLoc()); Lexer.setBuffer(SrcMgr.getMemoryBuffer(CurBuffer)->getBuffer()); Lex(); @@ -4310,8 +4310,8 @@ void AsmParser::instantiateMacroLikeBody(MCAsmMacro *M, SMLoc DirectiveLoc, raw_svector_ostream &OS) { OS << ".endr\n"; - MemoryBuffer *Instantiation = - MemoryBuffer::getMemBufferCopy(OS.str(), "<instantiation>"); + std::unique_ptr<MemoryBuffer> Instantiation( + MemoryBuffer::getMemBufferCopy(OS.str(), "<instantiation>")); // Create the macro instantiation object and add to the current macro // instantiation stack. @@ -4321,7 +4321,7 @@ void AsmParser::instantiateMacroLikeBody(MCAsmMacro *M, SMLoc DirectiveLoc, ActiveMacros.push_back(MI); // Jump to the macro instantiation and prime the lexer. - CurBuffer = SrcMgr.AddNewSourceBuffer(Instantiation, SMLoc()); + CurBuffer = SrcMgr.AddNewSourceBuffer(std::move(Instantiation), SMLoc()); Lexer.setBuffer(SrcMgr.getMemoryBuffer(CurBuffer)->getBuffer()); Lex(); } diff --git a/llvm/lib/Object/IRObjectFile.cpp b/llvm/lib/Object/IRObjectFile.cpp index d6b4b6bd257..2ef359c7f00 100644 --- a/llvm/lib/Object/IRObjectFile.cpp +++ b/llvm/lib/Object/IRObjectFile.cpp @@ -75,7 +75,7 @@ IRObjectFile::IRObjectFile(MemoryBufferRef Object, std::unique_ptr<Module> Mod) std::unique_ptr<MemoryBuffer> Buffer(MemoryBuffer::getMemBuffer(InlineAsm)); SourceMgr SrcMgr; - SrcMgr.AddNewSourceBuffer(Buffer.release(), SMLoc()); + SrcMgr.AddNewSourceBuffer(std::move(Buffer), SMLoc()); std::unique_ptr<MCAsmParser> Parser( createMCAsmParser(SrcMgr, MCCtx, *Streamer, *MAI)); diff --git a/llvm/lib/Support/SourceMgr.cpp b/llvm/lib/Support/SourceMgr.cpp index 003cb56e6cb..f3a422c9d27 100644 --- a/llvm/lib/Support/SourceMgr.cpp +++ b/llvm/lib/Support/SourceMgr.cpp @@ -42,11 +42,6 @@ SourceMgr::~SourceMgr() { // Delete the line # cache if allocated. if (LineNoCacheTy *Cache = getCache(LineNoCache)) delete Cache; - - while (!Buffers.empty()) { - delete Buffers.back().Buffer; - Buffers.pop_back(); - } } unsigned SourceMgr::AddIncludeFile(const std::string &Filename, @@ -67,7 +62,7 @@ unsigned SourceMgr::AddIncludeFile(const std::string &Filename, if (!NewBufOrErr) return 0; - return AddNewSourceBuffer(NewBufOrErr.get().release(), IncludeLoc); + return AddNewSourceBuffer(std::move(*NewBufOrErr), IncludeLoc); } unsigned SourceMgr::FindBufferContainingLoc(SMLoc Loc) const { diff --git a/llvm/lib/Support/YAMLParser.cpp b/llvm/lib/Support/YAMLParser.cpp index 01cd926297a..07a326ee554 100644 --- a/llvm/lib/Support/YAMLParser.cpp +++ b/llvm/lib/Support/YAMLParser.cpp @@ -708,8 +708,10 @@ Scanner::Scanner(StringRef Input, SourceMgr &sm) , IsStartOfStream(true) , IsSimpleKeyAllowed(true) , Failed(false) { - InputBuffer = MemoryBuffer::getMemBuffer(Input, "YAML"); - SM.AddNewSourceBuffer(InputBuffer, SMLoc()); + std::unique_ptr<MemoryBuffer> InputBufferOwner( + MemoryBuffer::getMemBuffer(Input, "YAML")); + InputBuffer = InputBufferOwner.get(); + SM.AddNewSourceBuffer(std::move(InputBufferOwner), SMLoc()); Current = InputBuffer->getBufferStart(); End = InputBuffer->getBufferEnd(); } @@ -719,7 +721,7 @@ Scanner::Scanner(std::unique_ptr<MemoryBuffer> Buffer, SourceMgr &SM_) Current(InputBuffer->getBufferStart()), End(InputBuffer->getBufferEnd()), Indent(-1), Column(0), Line(0), FlowLevel(0), IsStartOfStream(true), IsSimpleKeyAllowed(true), Failed(false) { - SM.AddNewSourceBuffer(Buffer.release(), SMLoc()); + SM.AddNewSourceBuffer(std::move(Buffer), SMLoc()); } Token &Scanner::peekNext() { diff --git a/llvm/lib/TableGen/Main.cpp b/llvm/lib/TableGen/Main.cpp index e317fbfa373..d9c5601a5da 100644 --- a/llvm/lib/TableGen/Main.cpp +++ b/llvm/lib/TableGen/Main.cpp @@ -88,10 +88,9 @@ int TableGenMain(char *argv0, TableGenMainFn *MainFn) { << "': " << EC.message() << "\n"; return 1; } - MemoryBuffer *F = FileOrErr.get().release(); // Tell SrcMgr about this buffer, which is what TGParser will pick up. - SrcMgr.AddNewSourceBuffer(F, SMLoc()); + SrcMgr.AddNewSourceBuffer(std::move(*FileOrErr), SMLoc()); // Record the location of the include directory so that the lexer can find // it later. |