diff options
Diffstat (limited to 'llvm/lib/CodeGen/LLVMTargetMachine.cpp')
-rw-r--r-- | llvm/lib/CodeGen/LLVMTargetMachine.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/llvm/lib/CodeGen/LLVMTargetMachine.cpp b/llvm/lib/CodeGen/LLVMTargetMachine.cpp index 9018314f213..ae21489d5e6 100644 --- a/llvm/lib/CodeGen/LLVMTargetMachine.cpp +++ b/llvm/lib/CodeGen/LLVMTargetMachine.cpp @@ -221,13 +221,11 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM, } // Create the AsmPrinter, which takes ownership of AsmStreamer if successful. - FunctionPass *Printer = getTarget().createAsmPrinter(*this, *AsmStreamer); + FunctionPass *Printer = + getTarget().createAsmPrinter(*this, std::move(AsmStreamer)); if (!Printer) return true; - // If successful, createAsmPrinter took ownership of AsmStreamer. - AsmStreamer.release(); - PM.add(Printer); return false; @@ -261,20 +259,16 @@ bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM, if (!MCE || !MAB) return true; - std::unique_ptr<MCStreamer> AsmStreamer; - AsmStreamer.reset(getTarget() - .createMCObjectStreamer(getTargetTriple(), *Ctx, *MAB, - Out, MCE, STI, - Options.MCOptions.MCRelaxAll)); + std::unique_ptr<MCStreamer> AsmStreamer(getTarget().createMCObjectStreamer( + getTargetTriple(), *Ctx, *MAB, Out, MCE, STI, + Options.MCOptions.MCRelaxAll)); // Create the AsmPrinter, which takes ownership of AsmStreamer if successful. - FunctionPass *Printer = getTarget().createAsmPrinter(*this, *AsmStreamer); + FunctionPass *Printer = + getTarget().createAsmPrinter(*this, std::move(AsmStreamer)); if (!Printer) return true; - // If successful, createAsmPrinter took ownership of AsmStreamer. - AsmStreamer.release(); - PM.add(Printer); return false; // success! |