diff --git a/llvm/lib/VMCore/Metadata.cpp b/llvm/lib/VMCore/Metadata.cpp index 236ddaa15b2a833a5086b04baafcc7526915f60b..909c33d55bca602aab3f0038d0dd894b56e6d2ca 100644 --- a/llvm/lib/VMCore/Metadata.cpp +++ b/llvm/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);