Only warn about missing/incomplete -dealloc implementations when a class contains a non-SEL, non-IBOutlet ivar that references an ObjC object.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54024 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/CheckObjCDealloc.cpp b/lib/Analysis/CheckObjCDealloc.cpp
index a67f84a..ba0eb6a 100644
--- a/lib/Analysis/CheckObjCDealloc.cpp
+++ b/lib/Analysis/CheckObjCDealloc.cpp
@@ -71,12 +71,13 @@
ObjCIvarDecl* ID = *I;
QualType T = ID->getType();
- if ((T->isPointerType() || Ctx.isObjCObjectPointerType(T)) &&
- (ID->getAttr<IBOutletAttr>() == 0 && // Skip IBOutlets.
- !isSEL(T, SelII))) { // Skip SEL ivars.
- containsPointerIvar = true;
- break;
- }
+ if (!Ctx.isObjCObjectPointerType(T) ||
+ ID->getAttr<IBOutletAttr>() || // Skip IBOutlets.
+ isSEL(T, SelII)) // Skip SEL ivars.
+ continue;
+
+ containsPointerIvar = true;
+ break;
}
if (!containsPointerIvar)