diff --git a/llvm/lib/Analysis/DataStructure/DataStructure.cpp b/llvm/lib/Analysis/DataStructure/DataStructure.cpp index cf117bbd6bb9..5a5f2177c6a2 100644 --- a/llvm/lib/Analysis/DataStructure/DataStructure.cpp +++ b/llvm/lib/Analysis/DataStructure/DataStructure.cpp @@ -695,14 +695,14 @@ void DSGraph::mergeInGraph(DSCallSite &CS, const DSGraph &Graph, for (unsigned i = 0, e = CS.getNumPtrArgs(); i != e; ++i, ++AI) { // Advance the argument iterator to the first pointer argument... - while (!isPointerType(AI->getType())) { + while (AI != F.aend() && !isPointerType(AI->getType())) { ++AI; #ifndef NDEBUG if (AI == F.aend()) std::cerr << "Bad call to Function: " << F.getName() << "\n"; #endif - assert(AI != F.aend() && "# Args provided is not # Args required!"); } + if (AI == F.aend()) break; // Add the link from the argument scalar to the provided value DSNodeHandle &NH = (*ScalarMap)[AI];