aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Scalar/ObjCARC.cpp
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2012-04-19 21:50:46 +0000
committerDan Gohman <gohman@apple.com>2012-04-19 21:50:46 +0000
commit8b74e5afda780d05a46c1a35f46ebfd625e41f1a (patch)
tree54e9ec49191f598bfad1b303089c891e6d431111 /lib/Transforms/Scalar/ObjCARC.cpp
parentc8969fd2919ac99bfd2fa07a6885659d804101c6 (diff)
Avoid a bug in the path count computation, preventing an infinite
loop repeatedlt making the same change. This is for rdar://11256239. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155160 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Scalar/ObjCARC.cpp')
-rw-r--r--lib/Transforms/Scalar/ObjCARC.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Transforms/Scalar/ObjCARC.cpp b/lib/Transforms/Scalar/ObjCARC.cpp
index 29234da644..a5ccfec9a0 100644
--- a/lib/Transforms/Scalar/ObjCARC.cpp
+++ b/lib/Transforms/Scalar/ObjCARC.cpp
@@ -3379,7 +3379,7 @@ ObjCARCOpt::PerformCodePlacement(DenseMap<const BasicBlock *, BBState>
// Ok, everything checks out and we're all set. Let's move some code!
Changed = true;
- AnyPairsCompletelyEliminated = NewCount == 0;
+ AnyPairsCompletelyEliminated = OldCount != 0 && NewCount == 0;
NumRRs += OldCount - NewCount;
MoveCalls(Arg, RetainsToMove, ReleasesToMove,
Retains, Releases, DeadInsts, M);