Author: Ryosuke Niwa Date: 2025-09-23T02:23:27-07:00 New Revision: 86d767c3a0d422e4ee2a2d7ecc1a6880d9e33448
URL: https://github.com/llvm/llvm-project/commit/86d767c3a0d422e4ee2a2d7ecc1a6880d9e33448 DIFF: https://github.com/llvm/llvm-project/commit/86d767c3a0d422e4ee2a2d7ecc1a6880d9e33448.diff LOG: [alpha.webkit.UnretainedCallArgsChecker] Treat boolean literal as safe (#159705) Added: Modified: clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp clang/test/Analysis/Checkers/WebKit/objc-mock-types.h clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm Removed: ################################################################################ diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp index df13de158a646..9585ceb40f95e 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 854742b82a2d4..39dee1746158b 100644 --- a/clang/test/Analysis/Checkers/WebKit/objc-mock-types.h +++ b/clang/test/Analysis/Checkers/WebKit/objc-mock-types.h @@ -160,6 +160,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 ddaa34d8ace45..c9d2fe861bb49 100644 --- a/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm +++ b/clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm @@ -390,17 +390,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); } } _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
