IR: Move call to dropAllReferences() to MDNode subclasses

Don't call `dropAllReferences()` from `MDNode::~MDNode()`, call it
directly from `~MDNodeFwdDecl()` and `~GenericMDNode()`.

llvm-svn: 223904
This commit is contained in:
Duncan P. N. Exon Smith 2014-12-10 01:45:04 +00:00
parent 2dc1b0f514
commit f14b1df55b
2 changed files with 3 additions and 2 deletions

View File

@ -598,7 +598,7 @@ protected:
}
MDNode(LLVMContext &Context, unsigned ID, ArrayRef<Metadata *> MDs);
~MDNode() { dropAllReferences(); }
~MDNode() {}
void dropAllReferences();
void storeDistinctInContext();
@ -766,7 +766,7 @@ class MDNodeFwdDecl : public MDNode, ReplaceableMetadataImpl {
MDNodeFwdDecl(LLVMContext &C, ArrayRef<Metadata *> Vals)
: MDNode(C, MDNodeFwdDeclKind, Vals) {}
~MDNodeFwdDecl() {}
~MDNodeFwdDecl() { dropAllReferences(); }
public:
static bool classof(const Metadata *MD) {

View File

@ -428,6 +428,7 @@ GenericMDNode::~GenericMDNode() {
pImpl->NonUniquedMDNodes.erase(this);
else
pImpl->MDNodeSet.erase(this);
dropAllReferences();
}
void GenericMDNode::resolve() {