[clang] Fix WebKit static analyzers to support ref and deref methods to be defined on different classes. (PR #69985)

Artem Dergachev via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 9 13:13:49 PST 2023


================
@@ -77,14 +77,53 @@ class RefCntblBaseVirtualDtorChecker
               (AccSpec == AS_none && RD->isClass()))
             return false;
 
-          std::optional<const CXXRecordDecl*> RefCntblBaseRD = isRefCountable(Base);
-          if (!RefCntblBaseRD || !(*RefCntblBaseRD))
+          auto hasRefInBase = clang::hasPublicMethodInBase(Base, "ref");
----------------
haoNoQ wrote:

I wonder if this entire new section can be deduplicated with `isRefCountable()` in the other file. They look so similar!

https://github.com/llvm/llvm-project/pull/69985


More information about the cfe-commits mailing list