diff --git a/lib/Transforms/Scalar/ScalarReplAggregates.cpp b/lib/Transforms/Scalar/ScalarReplAggregates.cpp index 9598918880a..aeba94afa1d 100644 --- a/lib/Transforms/Scalar/ScalarReplAggregates.cpp +++ b/lib/Transforms/Scalar/ScalarReplAggregates.cpp @@ -171,9 +171,8 @@ bool SROA::performScalarRepl(Function &F) { // Now that we have created the alloca instructions that we want to use, // expand the getelementptr instructions to use them. // - for (Value::use_iterator I = AI->use_begin(), E = AI->use_end(); - I != E; ++I) { - Instruction *User = cast(*I); + while (!AI->use_empty()) { + Instruction *User = cast(AI->use_back()); if (GetElementPtrInst *GEPI = dyn_cast(User)) { // We now know that the GEP is of the form: GEP , 0, uint64_t Idx = cast(GEPI->getOperand(2))->getRawValue();