While replacing an MDNode elment, properly update MDNode's operand list.

MDNode's operand list does not include all elements.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81045 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel
2009-09-04 21:32:05 +00:00
parent 31dcbc3b4a
commit 68f195cc50
3 changed files with 292 additions and 3 deletions
+4 -3
View File
@@ -62,9 +62,10 @@ bool LLVMContext::RemoveDeadMetadata() {
return Changed;
while (!DeadMDNodes.empty()) {
const MDNode *N = cast<MDNode>(DeadMDNodes.back()); DeadMDNodes.pop_back();
if (N->use_empty())
delete N;
Value *V = DeadMDNodes.back(); DeadMDNodes.pop_back();
if (const MDNode *N = dyn_cast_or_null<MDNode>(V))
if (N->use_empty())
delete N;
}
}
return Changed;