diff options
| -rw-r--r-- | llvm/lib/Transforms/ObjCARC/ObjCARC.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp b/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp index 296610e..a0c9caa 100644 --- a/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp +++ b/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp @@ -114,8 +114,8 @@ CallInst *BundledRetainClaimRVs::insertRVCallWithColors( } BundledRetainClaimRVs::~BundledRetainClaimRVs() { - if (ContractPass) { - for (auto P : RVCalls) { + for (auto P : RVCalls) { + if (ContractPass) { CallBase *CB = P.second; // At this point, we know that the annotated calls can't be tail calls // as they are followed by marker instructions and retainRV/claimRV @@ -129,10 +129,9 @@ BundledRetainClaimRVs::~BundledRetainClaimRVs() { auto *NewCB = CallBase::Create(CB, OB, CB); CB->replaceAllUsesWith(NewCB); CB->eraseFromParent(); - } - } else { - for (auto P : RVCalls) + } else { EraseInstruction(P.first); + } } RVCalls.clear(); |
