diff --git a/llvm/lib/CodeGen/LLVMTargetMachine.cpp b/llvm/lib/CodeGen/LLVMTargetMachine.cpp --- a/llvm/lib/CodeGen/LLVMTargetMachine.cpp +++ b/llvm/lib/CodeGen/LLVMTargetMachine.cpp @@ -274,16 +274,17 @@ // emission fails. const MCSubtargetInfo &STI = *getMCSubtargetInfo(); const MCRegisterInfo &MRI = *getMCRegisterInfo(); - MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(*getMCInstrInfo(), *Ctx); - MCAsmBackend *MAB = - getTarget().createMCAsmBackend(STI, MRI, Options.MCOptions); + std::unique_ptr MCE( + getTarget().createMCCodeEmitter(*getMCInstrInfo(), *Ctx)); + std::unique_ptr MAB( + getTarget().createMCAsmBackend(STI, MRI, Options.MCOptions)); if (!MCE || !MAB) return true; const Triple &T = getTargetTriple(); std::unique_ptr AsmStreamer(getTarget().createMCObjectStreamer( - T, *Ctx, std::unique_ptr(MAB), MAB->createObjectWriter(Out), - std::unique_ptr(MCE), STI, Options.MCOptions.MCRelaxAll, + T, *Ctx, std::move(MAB), MAB->createObjectWriter(Out), std::move(MCE), + STI, Options.MCOptions.MCRelaxAll, Options.MCOptions.MCIncrementalLinkerCompatible, /*DWARFMustBeAtTheEnd*/ true));