diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-07-25 17:04:49 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-07-25 17:04:49 +0000 |
commit | 684b9d2d159da52bc858d81bc53a38db7958a158 (patch) | |
tree | 3f717c984743f01b119c85672cd493ac2aba994b /lib/Analysis/CheckObjCDealloc.cpp | |
parent | a59e05070b25861a8974817c87d7aa782c9a52f8 (diff) |
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
Diffstat (limited to 'lib/Analysis/CheckObjCDealloc.cpp')
-rw-r--r-- | lib/Analysis/CheckObjCDealloc.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/Analysis/CheckObjCDealloc.cpp b/lib/Analysis/CheckObjCDealloc.cpp index a67f84a79a..ba0eb6ac6a 100644 --- a/lib/Analysis/CheckObjCDealloc.cpp +++ b/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) |