From 01aacc94b9960b827cc543c17ed09e5245db5f33 Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Wed, 5 Apr 2017 03:52:47 +0000 Subject: [PATCH] Fix memory leak found by asan. llvm-svn: 299509 --- lld/ELF/LinkerScript.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp index 9d2ecb7..e2483a9 100644 --- a/lld/ELF/LinkerScript.cpp +++ b/lld/ELF/LinkerScript.cpp @@ -1168,7 +1168,7 @@ void ScriptParser::readLinkerScript() { } else if (Tok == "VERSION") { readVersion(); } else if (SymbolAssignment *Cmd = readProvideOrAssignment(Tok)) { - Script->Opt.Commands.emplace_back(Cmd); + Script->Opt.Commands.push_back(Cmd); } else { setError("unknown directive: " + Tok); } @@ -1530,11 +1530,11 @@ ScriptParser::readOutputSectionDescription(StringRef OutSec) { if (Tok == ";") { // Empty commands are allowed. Do nothing here. } else if (SymbolAssignment *Assignment = readProvideOrAssignment(Tok)) { - Cmd->Commands.emplace_back(Assignment); + Cmd->Commands.push_back(Assignment); } else if (BytesDataCommand *Data = readBytesDataCommand(Tok)) { - Cmd->Commands.emplace_back(Data); + Cmd->Commands.push_back(Data); } else if (Tok == "ASSERT") { - Cmd->Commands.emplace_back(new AssertCommand(readAssert())); + Cmd->Commands.push_back(make(readAssert())); expect(";"); } else if (Tok == "CONSTRUCTORS") { // CONSTRUCTORS is a keyword to make the linker recognize C++ ctors/dtors @@ -1545,7 +1545,7 @@ ScriptParser::readOutputSectionDescription(StringRef OutSec) { } else if (Tok == "SORT") { readSort(); } else if (peek() == "(") { - Cmd->Commands.emplace_back(readInputSectionDescription(Tok)); + Cmd->Commands.push_back(readInputSectionDescription(Tok)); } else { setError("unknown command " + Tok); } -- 2.7.4