From 675c571889e06ba6656d43101c4ac0e5b3169622 Mon Sep 17 00:00:00 2001 From: Jeremy Morse Date: Wed, 2 Feb 2022 21:00:20 +0000 Subject: [PATCH] Follow up to 6e03a68b776dc, squelch another leak This patch is a sticking-paster until D118774 solves the situation with unique_ptrs. I'm certainly wishing I'd focused on that first X_X. (cherry picked from commit 4654fa89eacca375ff860203697982b873bbd7c8) --- llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp b/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp index 3b4d717c9ab4a..6af5f07d801ac 100644 --- a/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp +++ b/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp @@ -2929,8 +2929,15 @@ bool InstrRefBasedLDV::depthFirstVLocAndEmit( VTracker = nullptr; // No scopes? No variable locations. - if (!LS.getCurrentFunctionScope()) + if (!LS.getCurrentFunctionScope()) { + // FIXME: this is a sticking plaster to prevent a memory leak, these + // pointers will be automagically freed by being unique pointers, shortly. + for (unsigned int I = 0; I < MaxNumBlocks; ++I) { + delete[] MInLocs[I]; + delete[] MOutLocs[I]; + } return false; + } // Build map from block number to the last scope that uses the block. SmallVector EjectionMap;