Verify that a non-uniqued non-temporary MDNode is not deleted via
authorDan Gohman <gohman@apple.com>
Mon, 23 Aug 2010 22:32:05 +0000 (22:32 +0000)
committerDan Gohman <gohman@apple.com>
Mon, 23 Aug 2010 22:32:05 +0000 (22:32 +0000)
MDNode::deleteTemporary.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111853 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Metadata.cpp

index bccdafa9cd11be1fb8ec8d6bcaca4a5e4df87ae7..7f7b9eca59aa6d268daeab09caf9014971ac34fd 100644 (file)
@@ -258,7 +258,9 @@ 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!");
+         "Deleting a non-temporary uniqued node!");
+  assert(!N->getContext().pImpl->NonUniquedMDNodes.erase(N) &&
+         "Deleting a non-temporary non-uniqued node!");
   assert((N->getSubclassDataFromValue() & NotUniquedBit) &&
          "Temporary MDNode does not have NotUniquedBit set!");
   assert((N->getSubclassDataFromValue() & DestroyFlag) == 0 &&