summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/ExecutionEngine
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@apple.com>2013-11-19 00:57:56 +0000
committerJuergen Ributzka <juergen@apple.com>2013-11-19 00:57:56 +0000
commitd12ccbd3434135bf4dce0d3bd9d0ac1943b20183 (patch)
treef3fa6b788d2ec312bcca95ab1aa7fe8148c99ce1 /llvm/unittests/ExecutionEngine
parent3af14421f2d8af2da639c7316bd90b5e397cef33 (diff)
downloadbcm5719-llvm-d12ccbd3434135bf4dce0d3bd9d0ac1943b20183.tar.gz
bcm5719-llvm-d12ccbd3434135bf4dce0d3bd9d0ac1943b20183.zip
[weak vtables] Remove a bunch of weak vtables
This patch removes most of the trivial cases of weak vtables by pinning them to a single object file. The memory leaks in this version have been fixed. Thanks Alexey for pointing them out. Differential Revision: http://llvm-reviews.chandlerc.com/D2068 Reviewed by Andy llvm-svn: 195064
Diffstat (limited to 'llvm/unittests/ExecutionEngine')
-rw-r--r--llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp19
-rw-r--r--llvm/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp8
-rw-r--r--llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp9
3 files changed, 24 insertions, 12 deletions
diff --git a/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp b/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
index e4197ddced6..15c58c480aa 100644
--- a/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
+++ b/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
@@ -83,14 +83,8 @@ protected:
UnsupportedOSs.push_back(Triple::Cygwin);
}
- virtual void SetUp() {
- didCallAllocateCodeSection = false;
- Module = 0;
- Function = 0;
- Engine = 0;
- Error = 0;
- }
-
+ virtual void SetUp();
+
virtual void TearDown() {
if (Engine)
LLVMDisposeExecutionEngine(Engine);
@@ -157,6 +151,15 @@ protected:
char *Error;
};
+// Provide out-of-line definition to prevent weak vtable.
+void MCJITCAPITest::SetUp() {
+ didCallAllocateCodeSection = false;
+ Module = 0;
+ Function = 0;
+ Engine = 0;
+ Error = 0;
+}
+
TEST_F(MCJITCAPITest, simple_function) {
SKIP_UNSUPPORTED_PLATFORM;
diff --git a/llvm/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp b/llvm/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp
index 4d650e8dbaf..cea6274656b 100644
--- a/llvm/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp
+++ b/llvm/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp
@@ -18,7 +18,13 @@
using namespace llvm;
-class MCJITMultipleModuleTest : public testing::Test, public MCJITTestBase {};
+class MCJITMultipleModuleTest : public testing::Test, public MCJITTestBase {
+public:
+ virtual ~MCJITMultipleModuleTest();
+};
+
+// Provide out-of-line definition to prevent weak vtable.
+MCJITMultipleModuleTest::~MCJITMultipleModuleTest() {}
namespace {
diff --git a/llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp b/llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp
index 7ccd2546c06..9786befd720 100644
--- a/llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp
+++ b/llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp
@@ -21,11 +21,14 @@ using namespace llvm;
class MCJITTest : public testing::Test, public MCJITTestBase {
protected:
- virtual void SetUp() {
- M.reset(createEmptyModule("<main>"));
- }
+ virtual void SetUp();
};
+// Provide out-of-line definition to prevent weak vtable.
+void MCJITTest::SetUp() {
+ M.reset(createEmptyModule("<main>"));
+}
+
namespace {
// FIXME: Ensure creating an execution engine does not crash when constructed
OpenPOWER on IntegriCloud