summaryrefslogtreecommitdiff
path: root/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
index a97a37f85e96..15a0c5a7fd9d 100644
--- a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
@@ -130,17 +130,16 @@ public:
if (BR->getSourceManager().isInSystemHeader(CD->getLocation()))
return;
- ObjCContainerDecl::PropertyMap map;
- CD->collectPropertiesToImplement(map);
- for (auto it : map)
- visitObjCPropertyDecl(CD, it.second);
-
- if (auto *ID = dyn_cast<ObjCInterfaceDecl>(CD)) {
- for (auto *Ivar : ID->ivars())
- visitIvarDecl(CD, Ivar);
- return;
- }
if (auto *ID = dyn_cast<ObjCImplementationDecl>(CD)) {
+ ObjCContainerDecl::PropertyMap map;
+ CD->collectPropertiesToImplement(map);
+ for (auto it : map)
+ visitObjCPropertyDecl(CD, it.second);
+
+ if (auto *Interface = ID->getClassInterface()) {
+ for (auto *Ivar : Interface->ivars())
+ visitIvarDecl(CD, Ivar);
+ }
for (auto *PropImpl : ID->property_impls())
visitPropImpl(CD, PropImpl);
for (auto *Ivar : ID->ivars())