================ @@ -87,6 +92,31 @@ class RawPtrRefMemberChecker } } + void visitObjCDecl(const ObjCContainerDecl *CD) const { + if (auto *ID = dyn_cast<ObjCInterfaceDecl>(CD)) { + for (auto *Ivar : ID->ivars()) + visitIvarDecl(CD, Ivar); + return; + } + if (auto *ID = dyn_cast<ObjCImplementationDecl>(CD)) { + for (auto *Ivar : ID->ivars()) + visitIvarDecl(CD, Ivar); + return; + } + } + + void visitIvarDecl(const ObjCContainerDecl *CD, + const ObjCIvarDecl *Ivar) const { + const Type *IvarType = Ivar->getType().getTypePtrOrNull(); + if (!IvarType) + return; + if (auto *IvarCXXRD = IvarType->getPointeeCXXRecordDecl()) { ---------------- rniwa wrote:
But again, we're doing a nullptr check here with if statement so I think we're good :) https://github.com/llvm/llvm-project/pull/127570 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits