diff --git a/llvm/lib/Analysis/DataStructure/Local.cpp b/llvm/lib/Analysis/DataStructure/Local.cpp index dbf182d98c19..64e6088e7c69 100644 --- a/llvm/lib/Analysis/DataStructure/Local.cpp +++ b/llvm/lib/Analysis/DataStructure/Local.cpp @@ -443,8 +443,14 @@ void GraphBuilder::visitCallSite(CallSite CS) { RetVal = getValueDest(*I); DSNode *Callee = 0; - if (DisableDirectCallOpt || !isa(CS.getCalledValue())) + if (DisableDirectCallOpt || !isa(CS.getCalledValue())) { Callee = getValueDest(*CS.getCalledValue()).getNode(); + if (Callee == 0) { + std::cerr << "WARNING: Program is calling through a null pointer?\n" + << *I; + return; // Calling a null pointer? + } + } std::vector Args; Args.reserve(CS.arg_end()-CS.arg_begin());