[clang] [alpha.webkit.UnretainedCallArgsChecker] Add a checker for NS or CF type call arguments. (PR #128586)
Rashmi Mudduluru via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 10 20:28:57 PDT 2025
================
@@ -141,6 +158,42 @@ class RawPtrRefCallArgsChecker
}
}
+ void visitObjCMessageExpr(const ObjCMessageExpr *E, const Decl *D) const {
+ if (BR->getSourceManager().isInSystemHeader(E->getExprLoc()))
+ return;
+
+ auto Selector = E->getSelector();
+ if (auto *Receiver = E->getInstanceReceiver()->IgnoreParenCasts()) {
+ std::optional<bool> IsUnsafe = isUnsafePtr(E->getReceiverType());
+ if (IsUnsafe && *IsUnsafe && !isPtrOriginSafe(Receiver)) {
+ if (auto *InnerMsg = dyn_cast<ObjCMessageExpr>(Receiver)) {
+ auto InnerSelector = InnerMsg->getSelector();
+ if (InnerSelector.getNameForSlot(0) == "alloc" &&
+ Selector.getNameForSlot(0).starts_with("init"))
----------------
t-rasmud wrote:
Should this also check for `getNameForSlot(0).starts_with("Init")`?
https://github.com/llvm/llvm-project/pull/128586
More information about the cfe-commits
mailing list