From: Duncan P. N. Exon Smith Date: Mon, 12 Jan 2015 20:19:54 +0000 (+0000) Subject: IR: Make MDNodeFwdDecl destructor public X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=45db33d6349e9d005f03b0c9416b76b791a64afb;p=oota-llvm.git 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 --- 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}