From: Duncan P. N. Exon Smith Date: Mon, 12 Jan 2015 18:59:40 +0000 (+0000) Subject: IR: Don't allow operands to become unresolved X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=54b53edbd9e0226cc1669ac12e96aa24f7690c2f;p=oota-llvm.git IR: Don't allow operands to become unresolved Operands shouldn't change from being resolved to unresolved during graph construction. Simplify the logic based on that assumption. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225649 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/IR/Metadata.cpp b/lib/IR/Metadata.cpp index 6cb6efe3d66..34ecf3dfc2d 100644 --- a/lib/IR/Metadata.cpp +++ b/lib/IR/Metadata.cpp @@ -547,12 +547,16 @@ void GenericMDNode::handleChangedOperand(void *Ref, Metadata *New) { if (!isResolved()) { // Check if the last unresolved operand has just been resolved; if so, // resolve this as well. - if (isOperandUnresolved(Old)) - decrementUnresolvedOperands(); - if (isOperandUnresolved(New)) - incrementUnresolvedOperands(); - if (!hasUnresolvedOperands()) - resolve(); + if (isOperandUnresolved(Old)) { + if (!isOperandUnresolved(New)) { + decrementUnresolvedOperands(); + if (!hasUnresolvedOperands()) + resolve(); + } + } else { + // Operands shouldn't become unresolved. + assert(isOperandUnresolved(New) && "Operand just became unresolved"); + } } return;