[clang] [alpha.webkit.UnretainedCallArgsChecker] Treat boolean literal as safe (PR #159705)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 18 22:46:54 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Ryosuke Niwa (rniwa)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/159705.diff
3 Files Affected:
- (modified) clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp (+2)
- (modified) clang/test/Analysis/Checkers/WebKit/objc-mock-types.h (+1)
- (modified) clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm (+4-1)
``````````diff
diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp
index e80f1749d595b..748be13ca0c3b 100644
--- a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp
@@ -224,6 +224,8 @@ class RawPtrRefCallArgsChecker
// foo(123)
return true;
}
+ if (isa<CXXBoolLiteralExpr>(ArgOrigin))
+ return true;
if (isa<ObjCStringLiteral>(ArgOrigin))
return true;
if (isASafeCallArg(ArgOrigin))
diff --git a/clang/test/Analysis/Checkers/WebKit/objc-mock-types.h b/clang/test/Analysis/Checkers/WebKit/objc-mock-types.h
index 09b303961fd6a..4c34031f7f7b1 100644
--- a/clang/test/Analysis/Checkers/WebKit/objc-mock-types.h
+++ b/clang/test/Analysis/Checkers/WebKit/objc-mock-types.h
@@ -141,6 +141,7 @@ __attribute__((objc_root_class))
- (int)intValue;
- (id)initWithInt:(int)value;
+ (NSNumber *)numberWithInt:(int)value;
++ (NSNumber *)numberWithBool:(BOOL)value;
@end
@interface SomeObj : NSObject
diff --git a/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm b/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
index 75eead070fdf9..2f645afc7e53f 100644
--- a/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
+++ b/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
@@ -329,17 +329,20 @@ void foo() {
}
}
-#define YES 1
+#define YES __objc_yes
+#define NO 0
namespace call_with_cf_constant {
void bar(const NSArray *);
void baz(const NSDictionary *);
void boo(NSNumber *);
+ void boo(CFTypeRef);
void foo() {
CFArrayCreateMutable(kCFAllocatorDefault, 10);
bar(@[@"hello"]);
baz(@{@"hello": @3});
boo(@YES);
+ boo(@NO);
}
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/159705
More information about the cfe-commits
mailing list