diff --git a/llvm/tools/bugpoint/Miscompilation.cpp b/llvm/tools/bugpoint/Miscompilation.cpp index 466293b89dc1..bdcc1bb3bf96 100644 --- a/llvm/tools/bugpoint/Miscompilation.cpp +++ b/llvm/tools/bugpoint/Miscompilation.cpp @@ -501,8 +501,8 @@ ReduceMiscompiledBlocks::TestFuncs(const std::vector &BBs) { // Split the module into the two halves of the program we want. ValueToValueMapTy VMap; - Module *Clone = CloneModule(*BD.getProgram(), VMap).release(); - Module *Orig = BD.swapProgramIn(Clone); + std::unique_ptr Clone = CloneModule(*BD.getProgram(), VMap); + std::unique_ptr Orig(BD.swapProgramIn(Clone.release())); std::vector FuncsOnClone; std::vector BBsOnClone; for (unsigned i = 0, e = FunctionsBeingTested.size(); i != e; ++i) { @@ -524,10 +524,10 @@ ReduceMiscompiledBlocks::TestFuncs(const std::vector &BBs) { if (std::unique_ptr New = BD.extractMappedBlocksFromModule(BBsOnClone, ToOptimize.get())) { Expected Ret = TestFn(BD, std::move(New), std::move(ToNotOptimize)); - delete BD.swapProgramIn(Orig); + delete BD.swapProgramIn(Orig.release()); return Ret; } - delete BD.swapProgramIn(Orig); + delete BD.swapProgramIn(Orig.release()); return false; }