aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Transforms/ObjCARC/ObjCARC.cpp9
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();