From 2b8cc651dca0c000ee18ec79bd5de4826156c9d6 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Wed, 9 Apr 2025 19:57:38 -0700 Subject: :createMCStreamer: delete InstPrinter on error --- llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp') diff --git a/llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp b/llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp index 37611479088b..32e77dbb1c22 100644 --- a/llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp +++ b/llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp @@ -166,9 +166,12 @@ CodeGenTargetMachineImpl::createMCStreamer(raw_pwrite_stream &Out, getTargetTriple(), Options.MCOptions.OutputAsmVariant.value_or(MAI.getAssemblerDialect()), MAI, MII, MRI); - for (StringRef Opt : Options.MCOptions.InstPrinterOptions) - if (!InstPrinter->applyTargetSpecificCLOption(Opt)) + for (StringRef Opt : Options.MCOptions.InstPrinterOptions) { + if (!InstPrinter->applyTargetSpecificCLOption(Opt)) { + delete InstPrinter; return createStringError("invalid InstPrinter option '" + Opt + "'"); + } + } // Create a code emitter if asked to show the encoding. std::unique_ptr MCE; -- cgit v1.2.3