diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/Scalarizer.cpp | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/llvm/lib/Transforms/Scalar/Scalarizer.cpp b/llvm/lib/Transforms/Scalar/Scalarizer.cpp index 15aa541de30..aed4a4ad4d2 100644 --- a/llvm/lib/Transforms/Scalar/Scalarizer.cpp +++ b/llvm/lib/Transforms/Scalar/Scalarizer.cpp @@ -306,7 +306,11 @@ void Scalarizer::gather(Instruction *Op, const ValueVector &CV) {    ValueVector &SV = Scattered[Op];    if (!SV.empty()) {      for (unsigned I = 0, E = SV.size(); I != E; ++I) { -      Instruction *Old = cast<Instruction>(SV[I]); +      Value *V = SV[I]; +      if (V == nullptr) +        continue; + +      Instruction *Old = cast<Instruction>(V);        CV[I]->takeName(Old);        Old->replaceAllUsesWith(CV[I]);        Old->eraseFromParent(); | 

