diff --git a/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp b/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp index ed5063cdf1a68dd0bb2d27c8fc877d426597ae42..136d54a6cb7594cb70483df72d98e71dedf86e63 100644 --- a/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp +++ b/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp @@ -2086,12 +2086,11 @@ void ObjCARCOpt::OptimizeReturns(Function &F) { SmallPtrSet Visited; for (BasicBlock &BB: F) { ReturnInst *Ret = dyn_cast(&BB.back()); - - DEBUG(dbgs() << "Visiting: " << *Ret << "\n"); - if (!Ret) continue; + DEBUG(dbgs() << "Visiting: " << *Ret << "\n"); + const Value *Arg = GetRCIdentityRoot(Ret->getOperand(0)); // Look for an ``autorelease'' instruction that is a predecessor of Ret and