diff --git a/llvm/tools/bugpoint/CrashDebugger.cpp b/llvm/tools/bugpoint/CrashDebugger.cpp index a5c8f294d4be..c0a92bc6d82d 100644 --- a/llvm/tools/bugpoint/CrashDebugger.cpp +++ b/llvm/tools/bugpoint/CrashDebugger.cpp @@ -854,7 +854,7 @@ bool ReduceCrashingNamedMDOps::TestNamedMDOps( outs() << " named metadata operands: "; ValueToValueMapTy VMap; - Module *M = CloneModule(*BD.getProgram(), VMap).release(); + std::unique_ptr M = CloneModule(*BD.getProgram(), VMap); // This is a little wasteful. In the future it might be good if we could have // these dropped during cloning. @@ -874,17 +874,17 @@ bool ReduceCrashingNamedMDOps::TestNamedMDOps( Passes.run(*M); // Try running on the hacked up program... - if (TestFn(BD, M)) { + if (TestFn(BD, M.get())) { // Make sure to use instruction pointers that point into the now-current // module, and that they don't include any deleted blocks. NamedMDOps.clear(); for (const MDNode *Node : OldMDNodeOps) NamedMDOps.push_back(cast(*VMap.getMappedMD(Node))); - BD.setNewProgram(M); // It crashed, keep the trimmed version... + BD.setNewProgram(M.release()); // It crashed, keep the trimmed version... return true; } - delete M; // It didn't crash, try something else. + // It didn't crash, try something else. return false; }