The specific case of interest is when objc_retainBlock is passed null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185885
91177308-0d34-0410-b5e6-
96231b3b80d8
if (!Unused) {
// Replace the return value with the argument.
- assert(IsForwarding(GetBasicInstructionClass(CI)) &&
+ assert((IsForwarding(GetBasicInstructionClass(CI)) ||
+ (IsNoopOnNull(GetBasicInstructionClass(CI)) &&
+ isa<ConstantPointerNull>(OldArg))) &&
"Can't delete non-forwarding instruction with users!");
CI->replaceAllUsesWith(OldArg);
}