diff options
author | Devang Patel <dpatel@apple.com> | 2008-04-09 15:58:24 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2008-04-09 15:58:24 +0000 |
commit | a7dfbc03661fc303891370de95e160ab66769eb0 (patch) | |
tree | 512ac838415a472b38fd99852ccf16366b1121f7 /llvm/lib/Transforms/Scalar/SCCP.cpp | |
parent | 43e06330486bed05ed1845f456e7382e3a99a444 (diff) | |
download | bcm5719-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.cpp | 5 |
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); |