[clang] [webkit.RefCntblBaseVirtualDtor] Make ThreadSafeRefCounted not generate warnings (PR #107676)
Ryosuke Niwa via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 10 21:37:22 PDT 2024
================
@@ -67,6 +68,48 @@ class DerefFuncDeleteExprVisitor
const Decl *D = CE->getCalleeDecl();
if (D && D->hasBody())
return VisitBody(D->getBody());
+ else {
+ auto name = safeGetName(D);
+ if (name == "ensureOnMainThread" || name == "ensureOnMainRunLoop") {
+ for (unsigned i = 0; i < CE->getNumArgs(); ++i) {
+ auto *Arg = CE->getArg(i);
+ if (FindLabmda(Arg))
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ bool FindLabmda(const Expr *E) {
+ while (E) {
+ if (auto *TempE = dyn_cast<MaterializeTemporaryExpr>(E)) {
----------------
rniwa wrote:
Simplified this code quite a bit using `IgnoreParenCasts`.
https://github.com/llvm/llvm-project/pull/107676
More information about the cfe-commits
mailing list