summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/TargetLoweringObjectFile.cpp
diff options
context:
space:
mode:
authorEric Liu <ioeric@google.com>2016-09-16 11:50:57 +0000
committerEric Liu <ioeric@google.com>2016-09-16 11:50:57 +0000
commitd07ad5196a4e5c70a7e2a5b2a7ebedb8dc926026 (patch)
treeef23c6285ba83823d80bad0b58aa96227ff9606d /llvm/lib/Target/TargetLoweringObjectFile.cpp
parent7f193d6903edfcbf604fa56138f2c589634ed0d4 (diff)
downloadbcm5719-llvm-d07ad5196a4e5c70a7e2a5b2a7ebedb8dc926026.tar.gz
bcm5719-llvm-d07ad5196a4e5c70a7e2a5b2a7ebedb8dc926026.zip
Trying to fix Mangler memory leak in TargetLoweringObjectFile.
Summary: `TargetLoweringObjectFile` can be re-used and thus `TargetLoweringObjectFile::Initialize()` can be called multiple times causing `Mang` pointer memory leak. Reviewers: echristo Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D24659 llvm-svn: 281718
Diffstat (limited to 'llvm/lib/Target/TargetLoweringObjectFile.cpp')
-rw-r--r--llvm/lib/Target/TargetLoweringObjectFile.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/TargetLoweringObjectFile.cpp b/llvm/lib/Target/TargetLoweringObjectFile.cpp
index 1555c039c49..ae80075c7f8 100644
--- a/llvm/lib/Target/TargetLoweringObjectFile.cpp
+++ b/llvm/lib/Target/TargetLoweringObjectFile.cpp
@@ -43,6 +43,8 @@ using namespace llvm;
void TargetLoweringObjectFile::Initialize(MCContext &ctx,
const TargetMachine &TM) {
Ctx = &ctx;
+ // `Initialize` can be called more than once.
+ if (Mang != nullptr) delete Mang;
Mang = new Mangler();
InitMCObjectFileInfo(TM.getTargetTriple(), TM.isPositionIndependent(),
TM.getCodeModel(), *Ctx);
OpenPOWER on IntegriCloud