diff --git a/lib/Transforms/Scalar/SCCP.cpp b/lib/Transforms/Scalar/SCCP.cpp index 0fd93163474..ec2d368d72c 100644 --- a/lib/Transforms/Scalar/SCCP.cpp +++ b/lib/Transforms/Scalar/SCCP.cpp @@ -690,12 +690,13 @@ void SCCPSolver::visitGetResultInst(GetResultInst &GRI) { unsigned Idx = GRI.getIndex(); Value *Aggr = GRI.getOperand(0); Function *F = NULL; - if (CallInst *CI = dyn_cast(Aggr)) + if (CallInst *CI = dyn_cast(Aggr)) F = CI->getCalledFunction(); else if (InvokeInst *II = dyn_cast(Aggr)) F = II->getCalledFunction(); - assert (F && "Invalid GetResultInst operands!"); + if (!F) + return; std::multimap::iterator It, E; tie(It, E) = TrackedMultipleRetVals.equal_range(F);