diff options
author | Anna Zaks <ganna@apple.com> | 2012-10-16 19:36:37 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2012-10-16 19:36:37 +0000 |
commit | b642fc5db4e8d049828704e3ec03562579451f59 (patch) | |
tree | 24d6626d62237c5cbf7f3d11ec0f94ac2fedad77 /clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp | |
parent | b58be2c593043d88f4727c2d96933f6b50179754 (diff) | |
download | bcm5719-llvm-b642fc5db4e8d049828704e3ec03562579451f59.tar.gz bcm5719-llvm-b642fc5db4e8d049828704e3ec03562579451f59.zip |
[analyzer] Ivar Invalidation: track ivars in continuations and
@implementation.
llvm-svn: 166047
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp index 462066af577..e52e3d42e25 100644 --- a/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp @@ -314,12 +314,12 @@ void IvarInvalidationChecker::checkASTDecl(const ObjCMethodDecl *D, // Collect all ivars that need cleanup. IvarSet Ivars; const ObjCInterfaceDecl *InterfaceD = D->getClassInterface(); - for (ObjCInterfaceDecl::ivar_iterator - II = InterfaceD->ivar_begin(), - IE = InterfaceD->ivar_end(); II != IE; ++II) { - const ObjCIvarDecl *Iv = *II; + + // Collect ivars declared in this class, its extensions and its implementation + ObjCInterfaceDecl *IDecl = const_cast<ObjCInterfaceDecl *>(InterfaceD); + for (const ObjCIvarDecl *Iv = IDecl->all_declared_ivar_begin(); Iv; + Iv= Iv->getNextIvar()) trackIvar(Iv, Ivars); - } // Construct Property/Property Accessor to Ivar maps to assist checking if an // ivar which is backing a property has been reset. |