diff --git a/lib/Transforms/Utils/InlineFunction.cpp b/lib/Transforms/Utils/InlineFunction.cpp index 79b37003102..6862ec6dfd2 100644 --- a/lib/Transforms/Utils/InlineFunction.cpp +++ b/lib/Transforms/Utils/InlineFunction.cpp @@ -446,9 +446,8 @@ bool llvm::InlineFunction(CallSite CS, CallGraph *CG, const TargetData *TD) { ReturnInst *R = Returns[0]; if (R->getNumOperands() > 1) { // Multiple return values. - for (Value::use_iterator RUI = TheCall->use_begin(), - RUE = TheCall->use_end(); RUI != RUE; ) { - GetResultInst *GR = cast(RUI++); + while (!TheCall->use_empty()) { + GetResultInst *GR = cast(TheCall->use_back()); Value *RV = R->getOperand(GR->getIndex()); GR->replaceAllUsesWith(RV); GR->eraseFromParent();