From 990bdd50d17f8a05c14392cc402a7e098fd2505f Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Sat, 21 Aug 2010 02:52:29 +0000 Subject: Add an assert to MDNode::deleteTemporary check that the node being deleted is not non-temporary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111713 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/Metadata.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/VMCore') diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp index 236ddaa15b..909c33d55b 100644 --- a/lib/VMCore/Metadata.cpp +++ b/lib/VMCore/Metadata.cpp @@ -257,10 +257,12 @@ MDNode *MDNode::getTemporary(LLVMContext &Context, Value *const *Vals, void MDNode::deleteTemporary(MDNode *N) { assert(N->use_empty() && "Temporary MDNode has uses!"); + assert(!N->getContext().pImpl->MDNodeSet.RemoveNode(N) && + "Deleting a non-temporary node!"); assert((N->getSubclassDataFromValue() & NotUniquedBit) && "Temporary MDNode does not have NotUniquedBit set!"); assert((N->getSubclassDataFromValue() & DestroyFlag) == 0 && - "Temporary MDNode does has DestroyFlag set!"); + "Temporary MDNode has DestroyFlag set!"); N->setValueSubclassData(N->getSubclassDataFromValue() | DestroyFlag); LeakDetector::removeGarbageObject(N); -- cgit v1.2.3