diff --git a/llvm/lib/Target/SPIRV/SPIRVAPI.cpp b/llvm/lib/Target/SPIRV/SPIRVAPI.cpp index a1ee4aada853b..4c806fd7c9888 100644 --- a/llvm/lib/Target/SPIRV/SPIRVAPI.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVAPI.cpp @@ -134,9 +134,8 @@ SPIRVTranslateModule(Module *M, std::string &SpirvObj, std::string &ErrMsg, TargetOptions Options; std::optional RM; std::optional CM; - std::unique_ptr Target = - std::unique_ptr(TheTarget->createTargetMachine( - TargetTriple.getTriple(), "", "", Options, RM, CM, OLevel)); + std::unique_ptr Target(TheTarget->createTargetMachine( + TargetTriple.getTriple(), "", "", Options, RM, CM, OLevel)); if (!Target) { ErrMsg = "Could not allocate target machine!"; return false; @@ -158,10 +157,10 @@ SPIRVTranslateModule(Module *M, std::string &SpirvObj, std::string &ErrMsg, TargetLibraryInfoImpl TLII(Triple(M->getTargetTriple())); legacy::PassManager PM; PM.add(new TargetLibraryInfoWrapperPass(TLII)); - MachineModuleInfoWrapperPass *MMIWP = - new MachineModuleInfoWrapperPass(Target.get()); + std::unique_ptr MMIWP( + new MachineModuleInfoWrapperPass(Target.get())); const_cast(Target->getObjFileLowering()) - ->Initialize(MMIWP->getMMI().getContext(), *Target); + ->Initialize(MMIWP.get()->getMMI().getContext(), *Target); SmallString<4096> OutBuffer; raw_svector_ostream OutStream(OutBuffer); diff --git a/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp b/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp index 27ea8b8cf06e8..149db48c190a0 100644 --- a/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp +++ b/llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp @@ -36,7 +36,9 @@ class SPIRVAPITest : public testing::Test { const std::vector &AllowExtNames, const std::vector &Opts) { SMDiagnostic ParseError; - M = parseAssemblyString(Assembly, ParseError, Context); + LLVMContext Context; + std::unique_ptr M = + parseAssemblyString(Assembly, ParseError, Context); if (!M) { ParseError.print("IR parsing failed: ", errs()); report_fatal_error("Can't parse input assembly."); @@ -48,9 +50,6 @@ class SPIRVAPITest : public testing::Test { return Status; } - LLVMContext Context; - std::unique_ptr M; - static constexpr StringRef ExtensionAssembly = R"( define dso_local spir_func void @test1() { entry: