summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-08-21 20:44:56 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-08-21 20:44:56 +0000
commit1961f14cf965e63d944d8888a089067cde142d10 (patch)
tree22b9817765f165fa1d6f170c4c029b48e7c8c718 /llvm/lib
parente423ed36f064e0830040c623f2f0a66df1c20814 (diff)
downloadbcm5719-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.cpp2
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp10
-rw-r--r--llvm/lib/MC/MCParser/AsmParser.cpp12
-rw-r--r--llvm/lib/Object/IRObjectFile.cpp2
-rw-r--r--llvm/lib/Support/SourceMgr.cpp7
-rw-r--r--llvm/lib/Support/YAMLParser.cpp8
-rw-r--r--llvm/lib/TableGen/Main.cpp3
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.
OpenPOWER on IntegriCloud