diff options
author | Eric Liu <ioeric@google.com> | 2016-09-16 11:50:57 +0000 |
---|---|---|
committer | Eric Liu <ioeric@google.com> | 2016-09-16 11:50:57 +0000 |
commit | d07ad5196a4e5c70a7e2a5b2a7ebedb8dc926026 (patch) | |
tree | ef23c6285ba83823d80bad0b58aa96227ff9606d /llvm/lib/Target/TargetLoweringObjectFile.cpp | |
parent | 7f193d6903edfcbf604fa56138f2c589634ed0d4 (diff) | |
download | bcm5719-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.cpp | 2 |
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); |