OSDN Git Service

IR: Make MDNodeFwdDecl destructor public
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Mon, 12 Jan 2015 20:19:54 +0000 (20:19 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Mon, 12 Jan 2015 20:19:54 +0000 (20:19 +0000)
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
unittests/IR/MetadataTest.cpp

index 6b202d8..d06621d 100644 (file)
@@ -818,9 +818,11 @@ class MDNodeFwdDecl : public MDNode, ReplaceableMetadataImpl {
 
   MDNodeFwdDecl(LLVMContext &C, ArrayRef<Metadata *> Vals)
       : MDNode(C, MDNodeFwdDeclKind, Vals) {}
-  ~MDNodeFwdDecl() { dropAllReferences(); }
 
 public:
+  ~MDNodeFwdDecl() { dropAllReferences(); }
+  using MDNode::operator delete;
+
   static bool classof(const Metadata *MD) {
     return MD->getMetadataID() == MDNodeFwdDeclKind;
   }
index ecda5e8..c86fdd4 100644 (file)
@@ -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}