summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/CheckObjCDealloc.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-07-25 17:04:49 +0000
committerTed Kremenek <kremenek@apple.com>2008-07-25 17:04:49 +0000
commit2483730e3f197596480f0f814ff3ed0b0c506280 (patch)
treefbc7c18f57edc3ee203dae617940c2fd1e4a03ad /clang/lib/Analysis/CheckObjCDealloc.cpp
parentf08932928c75e0ae47f42084bc527482e86e7423 (diff)
downloadbcm5719-llvm-2483730e3f197596480f0f814ff3ed0b0c506280.tar.gz
bcm5719-llvm-2483730e3f197596480f0f814ff3ed0b0c506280.zip
Only warn about missing/incomplete -dealloc implementations when a class contains a non-SEL, non-IBOutlet ivar that references an ObjC object.
llvm-svn: 54024
Diffstat (limited to 'clang/lib/Analysis/CheckObjCDealloc.cpp')
-rw-r--r--clang/lib/Analysis/CheckObjCDealloc.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/clang/lib/Analysis/CheckObjCDealloc.cpp b/clang/lib/Analysis/CheckObjCDealloc.cpp
index a67f84a79a0..ba0eb6ac6a1 100644
--- a/clang/lib/Analysis/CheckObjCDealloc.cpp
+++ b/clang/lib/Analysis/CheckObjCDealloc.cpp
@@ -71,12 +71,13 @@ void clang::CheckObjCDealloc(ObjCImplementationDecl* D,
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)
OpenPOWER on IntegriCloud