[Hexagon] Allocate MCInst in the MCContext to avoid leaking it.
Found by leaksanitizer.
llvm-svn: 252931
diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp
index 2940612..2145fb7 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp
+++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp
@@ -28,7 +28,8 @@
MI.addOperand(MCOperand::createExpr(MCConstantExpr::create(Value, Context)));
}
-void HexagonMCInstrInfo::addConstExtender(MCInstrInfo const &MCII, MCInst &MCB,
+void HexagonMCInstrInfo::addConstExtender(MCContext &Context,
+ MCInstrInfo const &MCII, MCInst &MCB,
MCInst const &MCI) {
assert(HexagonMCInstrInfo::isBundle(MCB));
MCOperand const &exOp =
@@ -36,7 +37,7 @@
// Create the extender.
MCInst *XMCI =
- new MCInst(HexagonMCInstrInfo::deriveExtender(MCII, MCI, exOp));
+ new (Context) MCInst(HexagonMCInstrInfo::deriveExtender(MCII, MCI, exOp));
MCB.addOperand(MCOperand::createInst(XMCI));
}
@@ -150,10 +151,11 @@
return nullptr;
}
-void HexagonMCInstrInfo::extendIfNeeded(MCInstrInfo const &MCII, MCInst &MCB,
+void HexagonMCInstrInfo::extendIfNeeded(MCContext &Context,
+ MCInstrInfo const &MCII, MCInst &MCB,
MCInst const &MCI, bool MustExtend) {
if (isConstExtended(MCII, MCI) || MustExtend)
- addConstExtender(MCII, MCB, MCI);
+ addConstExtender(Context, MCII, MCB, MCI);
}
HexagonII::MemAccessSize