From d4e0af9f8945a1fb7b053f542ab114eb5908350d Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Wed, 9 Apr 2008 15:58:24 +0000 Subject: [PATCH] Be conservative if getresult operand is neither call nor invoke. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49430 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/SCCP.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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);