diff options
| author | Ted Kremenek <kremenek@apple.com> | 2008-07-15 23:04:27 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2008-07-15 23:04:27 +0000 |
| commit | ed1f72b67c6f7edc83ea8b3feb2aad80dcbcb465 (patch) | |
| tree | 0ce025fcd93e774951367951a174bdb8ed1c974a /clang/lib/Analysis/CheckObjCDealloc.cpp | |
| parent | 72da4ff4f3b227c1543621123ab19203d1a5e334 (diff) | |
| download | bcm5719-llvm-ed1f72b67c6f7edc83ea8b3feb2aad80dcbcb465.tar.gz bcm5719-llvm-ed1f72b67c6f7edc83ea8b3feb2aad80dcbcb465.zip | |
For the MissingDealloc check, don't treat IBOutlet ivars as being needed to be released
llvm-svn: 53647
Diffstat (limited to 'clang/lib/Analysis/CheckObjCDealloc.cpp')
| -rw-r--r-- | clang/lib/Analysis/CheckObjCDealloc.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Analysis/CheckObjCDealloc.cpp b/clang/lib/Analysis/CheckObjCDealloc.cpp index 0c9100951ce..7bb0015462b 100644 --- a/clang/lib/Analysis/CheckObjCDealloc.cpp +++ b/clang/lib/Analysis/CheckObjCDealloc.cpp @@ -60,9 +60,11 @@ void clang::CheckObjCDealloc(ObjCImplementationDecl* D, for (ObjCInterfaceDecl::ivar_iterator I=ID->ivar_begin(), E=ID->ivar_end(); I!=E; ++I) { - QualType T = (*I)->getType(); + ObjCIvarDecl* ID = *I; + QualType T = ID->getType(); - if (T->isPointerType() || T->isObjCQualifiedIdType()) { + if ((T->isPointerType() || T->isObjCQualifiedIdType()) && + ID->getAttr<IBOutletAttr>() == 0) { // Skip IBOutlets. containsPointerIvar = true; break; } |

