[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
This commit is contained in:
Jordan Rose 2014-01-07 21:39:41 +00:00
parent 894843cb4e
commit 6ad4cb4eca
2 changed files with 3 additions and 9 deletions

View File

@ -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);
}

View File

@ -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();