diff options
author | Jordan Rose <jordan_rose@apple.com> | 2014-01-07 21:39:41 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2014-01-07 21:39:41 +0000 |
commit | 6ad4cb4eca2094a3fcde0a90c118632de1b4f939 (patch) | |
tree | c526e85b0c0e02e63d7d64b1c0bb64e940ac59e9 /clang | |
parent | 894843cb4e47366dee16ae10edb09a337a6db3ae (diff) | |
download | bcm5719-llvm-6ad4cb4eca2094a3fcde0a90c118632de1b4f939.tar.gz bcm5719-llvm-6ad4cb4eca2094a3fcde0a90c118632de1b4f939.zip |
[analyzer] Remove unused ARCNotOwnedSymbol retain count return effect.
RetainCountChecker has to track returned object values to know if they are
retained or not. Under ARC, even methods that return +1 are tracked by the
system and should be treated as +0. However, this effect behaves exactly
like NotOwned(ObjC), i.e. a generic Objective-C method that actually returns
+0, so we don't need a special case for it.
No functionality change.
llvm-svn: 198709
Diffstat (limited to 'clang')
-rw-r--r-- | clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h | 7 | ||||
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp | 5 |
2 files changed, 3 insertions, 9 deletions
diff --git a/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h b/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h index 5978299701c..507c267093a 100644 --- a/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h +++ b/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h @@ -114,8 +114,6 @@ public: /// Indicates that the object is not owned and controlled by the /// Garbage collector. GCNotOwnedSymbol, - /// Indicates that the object is not owned and controlled by ARC. - ARCNotOwnedSymbol, /// Indicates that the return value is an owned object when the /// receiver is also a tracked object. OwnedWhenTrackedReceiver, @@ -154,7 +152,7 @@ public: } bool notOwned() const { - return K == NotOwnedSymbol || K == ARCNotOwnedSymbol; + return K == NotOwnedSymbol; } bool operator==(const RetEffect &Other) const { @@ -174,9 +172,6 @@ public: static RetEffect MakeGCNotOwned() { return RetEffect(GCNotOwnedSymbol, ObjC); } - static RetEffect MakeARCNotOwned() { - return RetEffect(ARCNotOwnedSymbol, ObjC); - } static RetEffect MakeNoRet() { return RetEffect(NoRet); } diff --git a/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp index c51b7af4453..1108b090c1b 100644 --- a/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp @@ -652,11 +652,11 @@ public: AF(BPAlloc), ScratchArgs(AF.getEmptyMap()), ObjCAllocRetE(gcenabled ? RetEffect::MakeGCNotOwned() - : (usesARC ? RetEffect::MakeARCNotOwned() + : (usesARC ? RetEffect::MakeNotOwned(RetEffect::ObjC) : RetEffect::MakeOwned(RetEffect::ObjC, true))), ObjCInitRetE(gcenabled ? RetEffect::MakeGCNotOwned() - : (usesARC ? RetEffect::MakeARCNotOwned() + : (usesARC ? RetEffect::MakeNotOwned(RetEffect::ObjC) : RetEffect::MakeOwnedWhenTrackedReceiver())) { InitializeClassMethodSummaries(); InitializeMethodSummaries(); @@ -2861,7 +2861,6 @@ void RetainCountChecker::checkSummary(const RetainSummary &Summ, } case RetEffect::GCNotOwnedSymbol: - case RetEffect::ARCNotOwnedSymbol: case RetEffect::NotOwnedSymbol: { const Expr *Ex = CallOrMsg.getOriginExpr(); SymbolRef Sym = CallOrMsg.getReturnValue().getAsSymbol(); |