summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/Target/TargetLoweringObjectFile.h2
-rw-r--r--llvm/lib/Target/TargetLoweringObjectFile.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/llvm/include/llvm/Target/TargetLoweringObjectFile.h b/llvm/include/llvm/Target/TargetLoweringObjectFile.h
index b6cf0d88e63..b29d3a076a0 100644
--- a/llvm/include/llvm/Target/TargetLoweringObjectFile.h
+++ b/llvm/include/llvm/Target/TargetLoweringObjectFile.h
@@ -38,7 +38,7 @@ class TargetLoweringObjectFile : public MCObjectFileInfo {
MCContext *Ctx;
/// Name-mangler for global names.
- Mangler *Mang;
+ Mangler *Mang = nullptr;
TargetLoweringObjectFile(
const TargetLoweringObjectFile&) = delete;
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