summaryrefslogtreecommitdiffstats
path: root/llvm/tools/lli/RecordingMemoryManager.cpp
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2013-01-24 14:12:12 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2013-01-24 14:12:12 +0000
commita05a339c968f0f7ccaca26736f42b11a891fbaa9 (patch)
treec4d968f1f69e7dff1fdb1156df86cbc79513f37a /llvm/tools/lli/RecordingMemoryManager.cpp
parent4e3b9802bd73218c8ceca95f49a863eefbba6abd (diff)
downloadbcm5719-llvm-a05a339c968f0f7ccaca26736f42b11a891fbaa9.tar.gz
bcm5719-llvm-a05a339c968f0f7ccaca26736f42b11a891fbaa9.zip
lli/RecordingMemoryManager: Free allocated sections in the destructor to satisfy --vg-leak!
FIXME: It could be generalized in MemoryManager. llvm-svn: 173349
Diffstat (limited to 'llvm/tools/lli/RecordingMemoryManager.cpp')
-rw-r--r--llvm/tools/lli/RecordingMemoryManager.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/tools/lli/RecordingMemoryManager.cpp b/llvm/tools/lli/RecordingMemoryManager.cpp
index 75cb9781306..d9715e1a038 100644
--- a/llvm/tools/lli/RecordingMemoryManager.cpp
+++ b/llvm/tools/lli/RecordingMemoryManager.cpp
@@ -15,6 +15,17 @@
#include "RecordingMemoryManager.h"
using namespace llvm;
+RecordingMemoryManager::~RecordingMemoryManager() {
+ for (SmallVectorImpl<Allocation>::iterator
+ I = AllocatedCodeMem.begin(), E = AllocatedCodeMem.end();
+ I != E; ++I)
+ free(I->first.base());
+ for (SmallVectorImpl<Allocation>::iterator
+ I = AllocatedDataMem.begin(), E = AllocatedDataMem.end();
+ I != E; ++I)
+ free(I->first.base());
+}
+
uint8_t *RecordingMemoryManager::
allocateCodeSection(uintptr_t Size, unsigned Alignment, unsigned SectionID) {
// The recording memory manager is just a local copy of the remote target.
OpenPOWER on IntegriCloud