diff options
| -rw-r--r-- | llvm/include/llvm/Target/TargetLoweringObjectFile.h | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/TargetLoweringObjectFile.cpp | 2 |
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); |

