summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2012-10-16 19:36:37 +0000
committerAnna Zaks <ganna@apple.com>2012-10-16 19:36:37 +0000
commitb642fc5db4e8d049828704e3ec03562579451f59 (patch)
tree24d6626d62237c5cbf7f3d11ec0f94ac2fedad77 /clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
parentb58be2c593043d88f4727c2d96933f6b50179754 (diff)
downloadbcm5719-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.cpp10
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.
OpenPOWER on IntegriCloud