Handle a mismatch between # function args and call site args


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4696 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/DataStructure/TopDownClosure.cpp b/lib/Analysis/DataStructure/TopDownClosure.cpp
index 5c15b50..aa9a6a9 100644
--- a/lib/Analysis/DataStructure/TopDownClosure.cpp
+++ b/lib/Analysis/DataStructure/TopDownClosure.cpp
@@ -160,7 +160,8 @@
         
         // Resolve all of the arguments...
         Function::aiterator AI = Callee->abegin();
-        for (unsigned i = 0, e = NewCS.getNumPtrArgs(); i != e; ++i, ++AI) {
+        for (unsigned i = 0, e = NewCS.getNumPtrArgs();
+             i != e && AI != Callee->aend(); ++i, ++AI) {
           // Advance the argument iterator to the first pointer argument...
           while (!DS::isPointerType(AI->getType())) {
             ++AI;