aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/ADT/IntrusiveRefCntPtrTest.cpp
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/ADT/IntrusiveRefCntPtrTest.cpp
parent3af14421f2d8af2da639c7316bd90b5e397cef33 (diff)
downloadllvm-d12ccbd3434135bf4dce0d3bd9d0ac1943b20183.zip
llvm-d12ccbd3434135bf4dce0d3bd9d0ac1943b20183.tar.gz
llvm-d12ccbd3434135bf4dce0d3bd9d0ac1943b20183.tar.bz2
[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/ADT/IntrusiveRefCntPtrTest.cpp')
-rw-r--r--llvm/unittests/ADT/IntrusiveRefCntPtrTest.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/unittests/ADT/IntrusiveRefCntPtrTest.cpp b/llvm/unittests/ADT/IntrusiveRefCntPtrTest.cpp
index 0c8c4ca..a74e05e 100644
--- a/llvm/unittests/ADT/IntrusiveRefCntPtrTest.cpp
+++ b/llvm/unittests/ADT/IntrusiveRefCntPtrTest.cpp
@@ -13,9 +13,12 @@
namespace llvm {
struct VirtualRefCounted : public RefCountedBaseVPTR {
- virtual void f() {}
+ virtual void f();
};
+// Provide out-of-line definition to prevent weak vtable.
+void VirtualRefCounted::f() {}
+
// Run this test with valgrind to detect memory leaks.
TEST(IntrusiveRefCntPtr, RefCountedBaseVPTRCopyDoesNotLeak) {
VirtualRefCounted *V1 = new VirtualRefCounted;