From 45db33d6349e9d005f03b0c9416b76b791a64afb Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Mon, 12 Jan 2015 20:19:54 +0000 Subject: [PATCH] IR: Make MDNodeFwdDecl destructor public Now that the leak detector is gone, anyone can call this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225689 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/Metadata.h | 4 +++- unittests/IR/MetadataTest.cpp | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/llvm/IR/Metadata.h b/include/llvm/IR/Metadata.h index 6b202d88a96..d06621df3aa 100644 --- a/include/llvm/IR/Metadata.h +++ b/include/llvm/IR/Metadata.h @@ -818,9 +818,11 @@ class MDNodeFwdDecl : public MDNode, ReplaceableMetadataImpl { MDNodeFwdDecl(LLVMContext &C, ArrayRef Vals) : MDNode(C, MDNodeFwdDeclKind, Vals) {} - ~MDNodeFwdDecl() { dropAllReferences(); } public: + ~MDNodeFwdDecl() { dropAllReferences(); } + using MDNode::operator delete; + static bool classof(const Metadata *MD) { return MD->getMetadataID() == MDNodeFwdDeclKind; } diff --git a/unittests/IR/MetadataTest.cpp b/unittests/IR/MetadataTest.cpp index ecda5e8820e..c86fdd4f923 100644 --- a/unittests/IR/MetadataTest.cpp +++ b/unittests/IR/MetadataTest.cpp @@ -129,6 +129,10 @@ TEST_F(MDNodeTest, Delete) { delete I; } +TEST_F(MDNodeTest, DeleteMDNodeFwdDecl) { + delete MDNode::getTemporary(Context, None); +} + TEST_F(MDNodeTest, SelfReference) { // !0 = !{!0} // !1 = !{!0} -- 2.34.1