aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/lli/ChildTarget/ChildTarget.cpp1
-rw-r--r--tools/lli/ChildTarget/Unix/ChildTarget.inc4
-rw-r--r--tools/lli/ChildTarget/Windows/ChildTarget.inc3
-rw-r--r--tools/lli/RemoteTargetExternal.h2
-rw-r--r--tools/lli/Unix/RemoteTargetExternal.inc4
-rw-r--r--tools/lli/Windows/RemoteTargetExternal.inc3
6 files changed, 16 insertions, 1 deletions
diff --git a/tools/lli/ChildTarget/ChildTarget.cpp b/tools/lli/ChildTarget/ChildTarget.cpp
index a59209a..55fcae9 100644
--- a/tools/lli/ChildTarget/ChildTarget.cpp
+++ b/tools/lli/ChildTarget/ChildTarget.cpp
@@ -11,6 +11,7 @@ using namespace llvm;
class LLIChildTarget {
public:
+ ~LLIChildTarget(); // OS-specific destructor
void initialize();
LLIMessageType waitForIncomingMessage();
void handleMessage(LLIMessageType messageType);
diff --git a/tools/lli/ChildTarget/Unix/ChildTarget.inc b/tools/lli/ChildTarget/Unix/ChildTarget.inc
index cd42f34..cc95810 100644
--- a/tools/lli/ChildTarget/Unix/ChildTarget.inc
+++ b/tools/lli/ChildTarget/Unix/ChildTarget.inc
@@ -49,6 +49,10 @@ struct ConnectionData_t {
} // namespace
+LLIChildTarget::~LLIChildTarget() {
+ delete static_cast<ConnectionData_t *>(ConnectionData);
+}
+
// OS-specific methods
void LLIChildTarget::initializeConnection() {
// Store the parent ends of the pipes
diff --git a/tools/lli/ChildTarget/Windows/ChildTarget.inc b/tools/lli/ChildTarget/Windows/ChildTarget.inc
index bb95aff..45db2b0 100644
--- a/tools/lli/ChildTarget/Windows/ChildTarget.inc
+++ b/tools/lli/ChildTarget/Windows/ChildTarget.inc
@@ -12,6 +12,9 @@
//
//===----------------------------------------------------------------------===//
+LLIChildTarget::~LLIChildTarget() {
+}
+
// The RemoteTargetExternal implementation should prevent us from ever getting
// here on Windows, but nothing prevents a user from running this directly.
void LLIChildTarget::initializeConnection() {
diff --git a/tools/lli/RemoteTargetExternal.h b/tools/lli/RemoteTargetExternal.h
index 9a3644a..a4bfad2 100644
--- a/tools/lli/RemoteTargetExternal.h
+++ b/tools/lli/RemoteTargetExternal.h
@@ -88,7 +88,7 @@ public:
virtual void stop();
RemoteTargetExternal(std::string &Name) : RemoteTarget(), ChildName(Name) {}
- virtual ~RemoteTargetExternal() {}
+ virtual ~RemoteTargetExternal();
private:
std::string ChildName;
diff --git a/tools/lli/Unix/RemoteTargetExternal.inc b/tools/lli/Unix/RemoteTargetExternal.inc
index e245f7e..9c1a4cc 100644
--- a/tools/lli/Unix/RemoteTargetExternal.inc
+++ b/tools/lli/Unix/RemoteTargetExternal.inc
@@ -89,4 +89,8 @@ void RemoteTargetExternal::Wait() {
wait(NULL);
}
+RemoteTargetExternal::~RemoteTargetExternal() {
+ delete static_cast<ConnectionData_t *>(ConnectionData);
+}
+
} // namespace llvm
diff --git a/tools/lli/Windows/RemoteTargetExternal.inc b/tools/lli/Windows/RemoteTargetExternal.inc
index 6536d99..aef4627 100644
--- a/tools/lli/Windows/RemoteTargetExternal.inc
+++ b/tools/lli/Windows/RemoteTargetExternal.inc
@@ -29,4 +29,7 @@ int RemoteTargetExternal::ReadBytes(void *Data, size_t Size) {
void RemoteTargetExternal::Wait() {
}
+RemoteTargetExternal::~RemoteTargetExternal() {
+}
+
} // namespace llvm