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 | 2483730e3f197596480f0f814ff3ed0b0c506280 (patch) | |
tree | fbc7c18f57edc3ee203dae617940c2fd1e4a03ad /clang/lib/Analysis/CheckObjCDealloc.cpp | |
parent | f08932928c75e0ae47f42084bc527482e86e7423 (diff) | |
download | bcm5719-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.cpp | 13 |
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) |