summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/SCCP.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2008-04-09 15:58:24 +0000
committerDevang Patel <dpatel@apple.com>2008-04-09 15:58:24 +0000
commita7dfbc03661fc303891370de95e160ab66769eb0 (patch)
tree512ac838415a472b38fd99852ccf16366b1121f7 /llvm/lib/Transforms/Scalar/SCCP.cpp
parent43e06330486bed05ed1845f456e7382e3a99a444 (diff)
downloadbcm5719-llvm-a7dfbc03661fc303891370de95e160ab66769eb0.tar.gz
bcm5719-llvm-a7dfbc03661fc303891370de95e160ab66769eb0.zip
Be conservative if getresult operand is neither call nor invoke.
llvm-svn: 49430
Diffstat (limited to 'llvm/lib/Transforms/Scalar/SCCP.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/SCCP.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/SCCP.cpp b/llvm/lib/Transforms/Scalar/SCCP.cpp
index 0fd93163474..ec2d368d72c 100644
--- a/llvm/lib/Transforms/Scalar/SCCP.cpp
+++ b/llvm/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<CallInst>(Aggr))
+ if (CallInst *CI = dyn_cast<CallInst>(Aggr))
F = CI->getCalledFunction();
else if (InvokeInst *II = dyn_cast<InvokeInst>(Aggr))
F = II->getCalledFunction();
- assert (F && "Invalid GetResultInst operands!");
+ if (!F)
+ return;
std::multimap<Function*, LatticeValIndexed>::iterator It, E;
tie(It, E) = TrackedMultipleRetVals.equal_range(F);
OpenPOWER on IntegriCloud