diff --git a/lib/Analysis/DataStructure/Steensgaard.cpp b/lib/Analysis/DataStructure/Steensgaard.cpp index b17846e2eca..0458670e6fb 100644 --- a/lib/Analysis/DataStructure/Steensgaard.cpp +++ b/lib/Analysis/DataStructure/Steensgaard.cpp @@ -92,7 +92,8 @@ void Steens::ResolveFunctionCall(Function *F, const DSCallSite &Call, // Loop over all pointer arguments, resolving them to their provided pointers unsigned PtrArgIdx = 0; - for (Function::aiterator AI = F->abegin(), AE = F->aend(); AI != AE; ++AI) { + for (Function::aiterator AI = F->abegin(), AE = F->aend(); + AI != AE && PtrArgIdx < Call.getNumPtrArgs(); ++AI) { hash_map::iterator I = ValMap.find(AI); if (I != ValMap.end()) // If its a pointer argument... I->second.mergeWith(Call.getPtrArg(PtrArgIdx++));