[clang] [webkit.NoUncountedMemberChecker] Improve the warning text (PR #204557)
Ryosuke Niwa via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 9 17:03:03 PDT 2026
https://github.com/rniwa updated https://github.com/llvm/llvm-project/pull/204557
>From cf95350a0c4edfdb74952620dc0c0290ca78ce28 Mon Sep 17 00:00:00 2001
From: Ryosuke Niwa <rniwa at webkit.org>
Date: Thu, 18 Jun 2026 13:07:30 +0200
Subject: [PATCH 1/2] [webkit.NoUncountedMemberChecker] Improve the warning
text
This PR aligns NoUncountedMemberChecker and its variant's warning message
with the new warning format in https://github.com/llvm/llvm-project/pull/202724.
---
.../WebKit/RawPtrRefMemberChecker.cpp | 22 ++-----
.../Checkers/WebKit/unchecked-members-objc.mm | 4 +-
.../Checkers/WebKit/unchecked-members.cpp | 14 ++---
.../Checkers/WebKit/uncounted-members-objc.mm | 4 +-
...nted-members-ref-deref-on-diff-classes.cpp | 2 +-
.../Checkers/WebKit/uncounted-members.cpp | 14 ++---
.../Checkers/WebKit/unretained-members-arc.mm | 24 ++++----
.../Checkers/WebKit/unretained-members.mm | 60 +++++++++----------
8 files changed, 65 insertions(+), 79 deletions(-)
diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
index 0e23ae34ea212..371b0a6477ac3 100644
--- a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
@@ -40,7 +40,6 @@ class RawPtrRefMemberChecker
virtual std::optional<bool> isUnsafePtr(QualType,
bool ignoreARC = false) const = 0;
virtual const char *typeName() const = 0;
- virtual const char *invariant() const = 0;
void checkASTDecl(const TranslationUnitDecl *TUD, AnalysisManager &MGR,
BugReporter &BRArg) const {
@@ -291,8 +290,9 @@ class RawPtrRefMemberChecker
} else
Os << "Member variable ";
printQuotedName(Os, Member);
- Os << " in ";
+ Os << " (of ";
printQuotedQualifiedName(Os, ClassCXXRD);
+ Os << ")";
if (Member->getType().getTypePtrOrNull() == MemberType)
Os << " is a ";
else
@@ -303,7 +303,6 @@ class RawPtrRefMemberChecker
printQuotedQualifiedName(Os, Typedef->getDecl());
} else
printQuotedQualifiedName(Os, Pointee);
- Os << "; " << invariant() << ".";
PathDiagnosticLocation BSLoc(Member->getSourceRange().getBegin(),
BR->getSourceManager());
@@ -332,11 +331,7 @@ class NoUncountedMemberChecker final : public RawPtrRefMemberChecker {
return isUncountedPtr(QT.getCanonicalType());
}
- const char *typeName() const final { return "ref-countable type"; }
-
- const char *invariant() const final {
- return "member variables must be Ref, RefPtr, WeakRef, or WeakPtr";
- }
+ const char *typeName() const final { return "RefPtr capable type"; }
};
class NoUncheckedPtrMemberChecker final : public RawPtrRefMemberChecker {
@@ -350,11 +345,6 @@ class NoUncheckedPtrMemberChecker final : public RawPtrRefMemberChecker {
}
const char *typeName() const final { return "CheckedPtr capable type"; }
-
- const char *invariant() const final {
- return "member variables must be a CheckedPtr, CheckedRef, WeakRef, or "
- "WeakPtr";
- }
};
class NoUnretainedMemberChecker final : public RawPtrRefMemberChecker {
@@ -371,11 +361,7 @@ class NoUnretainedMemberChecker final : public RawPtrRefMemberChecker {
return RTC->isUnretained(QT, ignoreARC);
}
- const char *typeName() const final { return "retainable type"; }
-
- const char *invariant() const final {
- return "member variables must be a RetainPtr or OSObjectPtr";
- }
+ const char *typeName() const final { return "RetainPtr capable type"; }
PrintDeclKind printPointer(llvm::raw_svector_ostream &Os,
const Type *T) const final {
diff --git a/clang/test/Analysis/Checkers/WebKit/unchecked-members-objc.mm b/clang/test/Analysis/Checkers/WebKit/unchecked-members-objc.mm
index a9a9a367fb9f4..90ac6fc8ca283 100644
--- a/clang/test/Analysis/Checkers/WebKit/unchecked-members-objc.mm
+++ b/clang/test/Analysis/Checkers/WebKit/unchecked-members-objc.mm
@@ -14,7 +14,7 @@ - (void)release;
@interface SomeObjC : NSObject {
CheckedObj* _unchecked1;
-// expected-warning at -1{{Instance variable '_unchecked1' in 'SomeObjC' is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning at -1{{Instance variable '_unchecked1' (of 'SomeObjC') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
CheckedPtr<CheckedObj> _counted1;
[[clang::suppress]] CheckedObj* _unchecked2;
}
@@ -23,7 +23,7 @@ - (void)doWork;
@implementation SomeObjC {
CheckedObj* _unchecked3;
-// expected-warning at -1{{Instance variable '_unchecked3' in 'SomeObjC' is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning at -1{{Instance variable '_unchecked3' (of 'SomeObjC') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
CheckedPtr<CheckedObj> _counted2;
[[clang::suppress]] CheckedObj* _unchecked4;
}
diff --git a/clang/test/Analysis/Checkers/WebKit/unchecked-members.cpp b/clang/test/Analysis/Checkers/WebKit/unchecked-members.cpp
index 3fe15d88ff312..adc6aacfe528e 100644
--- a/clang/test/Analysis/Checkers/WebKit/unchecked-members.cpp
+++ b/clang/test/Analysis/Checkers/WebKit/unchecked-members.cpp
@@ -7,9 +7,9 @@ namespace members {
struct Foo {
private:
CheckedObj* a = nullptr;
-// expected-warning at -1{{Member variable 'a' in 'members::Foo' is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning at -1{{Member variable 'a' (of 'members::Foo') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
CheckedObj& b;
-// expected-warning at -1{{Member variable 'b' in 'members::Foo' is a reference to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning at -1{{Member variable 'b' (of 'members::Foo') is a reference to CheckedPtr capable type 'CheckedObj'}}
[[clang::suppress]]
CheckedObj* a_suppressed = nullptr;
@@ -27,7 +27,7 @@ namespace members {
template <typename S>
struct FooTmpl {
S* e;
-// expected-warning at -1{{Member variable 'e' in 'members::FooTmpl<CheckedObj>' is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning at -1{{Member variable 'e' (of 'members::FooTmpl<CheckedObj>') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
};
void forceTmplToInstantiate(FooTmpl<CheckedObj>) { }
@@ -38,7 +38,7 @@ namespace unions {
union Foo {
CheckedObj* a;
- // expected-warning at -1{{Member variable 'a' in 'unions::Foo' is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::Foo') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
CheckedPtr<CheckedObj> c;
CheckedRef<CheckedObj> d;
};
@@ -46,7 +46,7 @@ namespace unions {
template<class T>
union FooTmpl {
T* a;
- // expected-warning at -1{{Member variable 'a' in 'unions::FooTmpl<CheckedObj>' is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::FooTmpl<CheckedObj>') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
};
void forceTmplToInstantiate(FooTmpl<CheckedObj>) { }
@@ -66,13 +66,13 @@ namespace ptr_to_ptr_to_checked_ptr_capable {
struct List {
CheckedObj** elements;
- // expected-warning at -1{{Member variable 'elements' in 'ptr_to_ptr_to_checked_ptr_capable::List' contains a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+ // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_checked_ptr_capable::List') contains a raw pointer to CheckedPtr capable type 'CheckedObj'}}
};
template <typename T>
struct TemplateList {
T** elements;
- // expected-warning at -1{{Member variable 'elements' in 'ptr_to_ptr_to_checked_ptr_capable::TemplateList<CheckedObj>' contains a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+ // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_checked_ptr_capable::TemplateList<CheckedObj>') contains a raw pointer to CheckedPtr capable type 'CheckedObj'}}
};
TemplateList<CheckedObj> list;
diff --git a/clang/test/Analysis/Checkers/WebKit/uncounted-members-objc.mm b/clang/test/Analysis/Checkers/WebKit/uncounted-members-objc.mm
index 83b08a6841d26..30d54d9949de9 100644
--- a/clang/test/Analysis/Checkers/WebKit/uncounted-members-objc.mm
+++ b/clang/test/Analysis/Checkers/WebKit/uncounted-members-objc.mm
@@ -14,7 +14,7 @@ - (void)release;
@interface SomeObjC : NSObject {
RefCountable* _uncounted1;
-// expected-warning at -1{{Instance variable '_uncounted1' in 'SomeObjC' is a raw pointer to ref-countable type 'RefCountable'}}
+// expected-warning at -1{{Instance variable '_uncounted1' (of 'SomeObjC') is a raw pointer to RefPtr capable type 'RefCountable'}}
RefPtr<RefCountable> _counted1;
[[clang::suppress]] RefCountable* _uncounted2;
}
@@ -23,7 +23,7 @@ - (void)doWork;
@implementation SomeObjC {
RefCountable* _uncounted3;
-// expected-warning at -1{{Instance variable '_uncounted3' in 'SomeObjC' is a raw pointer to ref-countable type 'RefCountable'}}
+// expected-warning at -1{{Instance variable '_uncounted3' (of 'SomeObjC') is a raw pointer to RefPtr capable type 'RefCountable'}}
RefPtr<RefCountable> _counted2;
[[clang::suppress]] RefCountable* _uncounted4;
}
diff --git a/clang/test/Analysis/Checkers/WebKit/uncounted-members-ref-deref-on-diff-classes.cpp b/clang/test/Analysis/Checkers/WebKit/uncounted-members-ref-deref-on-diff-classes.cpp
index 4198b2388fed8..1b70b5bac85ad 100644
--- a/clang/test/Analysis/Checkers/WebKit/uncounted-members-ref-deref-on-diff-classes.cpp
+++ b/clang/test/Analysis/Checkers/WebKit/uncounted-members-ref-deref-on-diff-classes.cpp
@@ -19,5 +19,5 @@ class TreeNode : public RefCounted<TreeNode> {
private:
TreeNode* m_parent;
-// expected-warning at -1{{Member variable 'm_parent' in 'TreeNode' is a raw pointer to ref-countable type 'TreeNode'}}
+// expected-warning at -1{{Member variable 'm_parent' (of 'TreeNode') is a raw pointer to RefPtr capable type 'TreeNode'}}
};
diff --git a/clang/test/Analysis/Checkers/WebKit/uncounted-members.cpp b/clang/test/Analysis/Checkers/WebKit/uncounted-members.cpp
index b8c443cda4f8e..a0876c6b855b7 100644
--- a/clang/test/Analysis/Checkers/WebKit/uncounted-members.cpp
+++ b/clang/test/Analysis/Checkers/WebKit/uncounted-members.cpp
@@ -7,7 +7,7 @@ namespace members {
struct Foo {
private:
RefCountable* a = nullptr;
-// expected-warning at -1{{Member variable 'a' in 'members::Foo' is a raw pointer to ref-countable type 'RefCountable'}}
+// expected-warning at -1{{Member variable 'a' (of 'members::Foo') is a raw pointer to RefPtr capable type 'RefCountable'}}
[[clang::suppress]]
RefCountable* a_suppressed = nullptr;
@@ -18,14 +18,14 @@ namespace members {
public:
RefCountable silenceWarningAboutInit;
RefCountable& c = silenceWarningAboutInit;
-// expected-warning at -1{{Member variable 'c' in 'members::Foo' is a reference to ref-countable type 'RefCountable'}}
+// expected-warning at -1{{Member variable 'c' (of 'members::Foo') is a reference to RefPtr capable type 'RefCountable'}}
Ref<RefCountable> d;
};
template<class T>
struct FooTmpl {
T* a;
-// expected-warning at -1{{Member variable 'a' in 'members::FooTmpl<RefCountable>' is a raw pointer to ref-countable type 'RefCountable'}}
+// expected-warning at -1{{Member variable 'a' (of 'members::FooTmpl<RefCountable>') is a raw pointer to RefPtr capable type 'RefCountable'}}
};
void forceTmplToInstantiate(FooTmpl<RefCountable>) {}
@@ -39,7 +39,7 @@ namespace members {
namespace unions {
union Foo {
RefCountable* a;
- // expected-warning at -1{{Member variable 'a' in 'unions::Foo' is a raw pointer to ref-countable type 'RefCountable'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::Foo') is a raw pointer to RefPtr capable type 'RefCountable'}}
RefPtr<RefCountable> b;
Ref<RefCountable> c;
};
@@ -47,7 +47,7 @@ namespace unions {
template<class T>
union FooTmpl {
T* a;
- // expected-warning at -1{{Member variable 'a' in 'unions::FooTmpl<RefCountable>' is a raw pointer to ref-countable type 'RefCountable'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::FooTmpl<RefCountable>') is a raw pointer to RefPtr capable type 'RefCountable'}}
};
void forceTmplToInstantiate(FooTmpl<RefCountable>) {}
@@ -84,13 +84,13 @@ namespace ptr_to_ptr_to_ref_counted {
struct List {
RefCountable** elements;
- // expected-warning at -1{{Member variable 'elements' in 'ptr_to_ptr_to_ref_counted::List' contains a raw pointer to ref-countable type 'RefCountable'}}
+ // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_ref_counted::List') contains a raw pointer to RefPtr capable type 'RefCountable'}}
};
template <typename T>
struct TemplateList {
T** elements;
- // expected-warning at -1{{Member variable 'elements' in 'ptr_to_ptr_to_ref_counted::TemplateList<RefCountable>' contains a raw pointer to ref-countable type 'RefCountable'}}
+ // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_ref_counted::TemplateList<RefCountable>') contains a raw pointer to RefPtr capable type 'RefCountable'}}
};
TemplateList<RefCountable> list;
diff --git a/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm b/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm
index 4eef372d26480..6d29e7d4994c5 100644
--- a/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm
+++ b/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm
@@ -19,7 +19,7 @@
RetainPtr<SomeObj> d;
CFMutableArrayRef e = nullptr;
-// expected-warning at -1{{Member variable 'e' in 'members::Foo' is a retainable type 'CFMutableArrayRef'}}
+// expected-warning at -1{{Member variable 'e' (of 'members::Foo') is a RetainPtr capable type 'CFMutableArrayRef'}}
dispatch_queue_t f = nullptr;
};
@@ -27,7 +27,7 @@
union FooUnion {
SomeObj* a;
CFMutableArrayRef b;
- // expected-warning at -1{{Member variable 'b' in 'members::FooUnion' is a retainable type 'CFMutableArrayRef'}}
+ // expected-warning at -1{{Member variable 'b' (of 'members::FooUnion') is a RetainPtr capable type 'CFMutableArrayRef'}}
dispatch_queue_t c;
};
@@ -35,7 +35,7 @@
struct FooTmpl {
T* x;
S y;
-// expected-warning at -1{{Member variable 'y' in 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>' is a raw pointer to retainable type}}
+// expected-warning at -1{{Member variable 'y' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr capable type}}
R z;
};
@@ -52,14 +52,14 @@ void forceTmplToInstantiate(FooTmpl<SomeObj, CFMutableArrayRef, dispatch_queue_t
struct List {
CFMutableArrayRef* elements2;
- // expected-warning at -1{{Member variable 'elements2' in 'ptr_to_ptr_to_retained::List' contains a retainable type 'CFMutableArrayRef'}}
+ // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::List') contains a RetainPtr capable type 'CFMutableArrayRef'}}
};
template <typename T, typename S, typename R>
struct TemplateList {
T* elements1;
S* elements2;
- // expected-warning at -1{{Member variable 'elements2' in 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>' contains a raw pointer to retainable type '__CFArray'}}
+ // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr capable type '__CFArray'}}
R* elements3;
};
TemplateList<SomeObj, CFMutableArrayRef, dispatch_queue_t> list;
@@ -75,14 +75,14 @@ void forceTmplToInstantiate(FooTmpl<SomeObj, CFMutableArrayRef, dispatch_queue_t
@interface AnotherObject : NSObject {
NSString *ns_string;
CFStringRef cf_string;
- // expected-warning at -1{{Instance variable 'cf_string' in 'AnotherObject' is a retainable type 'CFStringRef'; member variables must be a RetainPtr}}
+ // expected-warning at -1{{Instance variable 'cf_string' (of 'AnotherObject') is a RetainPtr capable type 'CFStringRef'}}
dispatch_queue_t queue;
}
@property(nonatomic, strong) NSString *prop_string1;
@property(nonatomic, assign) NSString *prop_string2;
-// expected-warning at -1{{Property 'prop_string2' in 'AnotherObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning at -1{{Property 'prop_string2' (of 'AnotherObject') is a raw pointer to RetainPtr capable type 'NSString'}}
@property(nonatomic, unsafe_unretained) NSString *prop_string3;
-// expected-warning at -1{{Property 'prop_string3' in 'AnotherObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning at -1{{Property 'prop_string3' (of 'AnotherObject') is a raw pointer to RetainPtr capable type 'NSString'}}
@property(nonatomic, readonly) NSString *prop_string4;
@property(nonatomic, readonly) NSString *prop_safe;
@end
@@ -106,16 +106,16 @@ @interface InterfaceOnlyObject : NSObject
@interface NoSynthObject : NSObject {
NSString *ns_string;
CFStringRef cf_string;
- // expected-warning at -1{{Instance variable 'cf_string' in 'NoSynthObject' is a retainable type 'CFStringRef'; member variables must be a RetainPtr}}
+ // expected-warning at -1{{Instance variable 'cf_string' (of 'NoSynthObject') is a RetainPtr capable type 'CFStringRef'}}
}
@property(nonatomic, readonly, strong) NSString *prop_string1;
@property(nonatomic, readonly, strong) NSString *prop_string2;
@property(nonatomic, assign) NSString *prop_string3;
-// expected-warning at -1{{Property 'prop_string3' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning at -1{{Property 'prop_string3' (of 'NoSynthObject') is a raw pointer to RetainPtr capable type 'NSString'}}
@property(nonatomic, unsafe_unretained) NSString *prop_string4;
-// expected-warning at -1{{Property 'prop_string4' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning at -1{{Property 'prop_string4' (of 'NoSynthObject') is a raw pointer to RetainPtr capable type 'NSString'}}
@property(nonatomic, unsafe_unretained) dispatch_queue_t prop_string5;
-// expected-warning at -1{{Property 'prop_string5' in 'NoSynthObject' is a retainable type 'dispatch_queue_t'}}
+// expected-warning at -1{{Property 'prop_string5' (of 'NoSynthObject') is a RetainPtr capable type 'dispatch_queue_t'}}
@end
@implementation NoSynthObject
diff --git a/clang/test/Analysis/Checkers/WebKit/unretained-members.mm b/clang/test/Analysis/Checkers/WebKit/unretained-members.mm
index 2b120b9b1385c..be3055af6eed6 100644
--- a/clang/test/Analysis/Checkers/WebKit/unretained-members.mm
+++ b/clang/test/Analysis/Checkers/WebKit/unretained-members.mm
@@ -10,9 +10,9 @@
struct Foo {
private:
SomeObj* a = nullptr;
-// expected-warning at -1{{Member variable 'a' in 'members::Foo' is a raw pointer to retainable type}}
+// expected-warning at -1{{Member variable 'a' (of 'members::Foo') is a raw pointer to RetainPtr capable type}}
dispatch_queue_t a2 = nullptr;
-// expected-warning at -1{{Member variable 'a2' in 'members::Foo' is a retainable type 'dispatch_queue_t'}}
+// expected-warning at -1{{Member variable 'a2' (of 'members::Foo') is a RetainPtr capable type 'dispatch_queue_t'}}
[[clang::suppress]]
SomeObj* a_suppressed = nullptr;
@@ -26,23 +26,23 @@
public:
SomeObj* c = nullptr;
-// expected-warning at -1{{Member variable 'c' in 'members::Foo' is a raw pointer to retainable type}}
+// expected-warning at -1{{Member variable 'c' (of 'members::Foo') is a raw pointer to RetainPtr capable type}}
RetainPtr<SomeObj> d;
OSObjectPtr<dispatch_queue_t> d2;
CFMutableArrayRef e = nullptr;
-// expected-warning at -1{{Member variable 'e' in 'members::Foo' is a retainable type 'CFMutableArrayRef'}}
+// expected-warning at -1{{Member variable 'e' (of 'members::Foo') is a RetainPtr capable type 'CFMutableArrayRef'}}
};
template<class T, class S, class R>
struct FooTmpl {
T* a;
-// expected-warning at -1{{Member variable 'a' in 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>' is a raw pointer to retainable type}}
+// expected-warning at -1{{Member variable 'a' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr capable type}}
S b;
-// expected-warning at -1{{Member variable 'b' in 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>' is a raw pointer to retainable type}}
+// expected-warning at -1{{Member variable 'b' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr capable type}}
R c;
-// expected-warning at -1{{Member variable 'c' in 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>' is a raw pointer to retainable type}}
+// expected-warning at -1{{Member variable 'c' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr capable type}}
};
void forceTmplToInstantiate(FooTmpl<SomeObj, CFMutableArrayRef, dispatch_queue_t>) {}
@@ -58,18 +58,18 @@ void forceTmplToInstantiate(FooTmpl<SomeObj, CFMutableArrayRef, dispatch_queue_t
namespace unions {
union Foo {
SomeObj* a;
- // expected-warning at -1{{Member variable 'a' in 'unions::Foo' is a raw pointer to retainable type 'SomeObj'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::Foo') is a raw pointer to RetainPtr capable type 'SomeObj'}}
RetainPtr<SomeObj> b;
CFMutableArrayRef c;
- // expected-warning at -1{{Member variable 'c' in 'unions::Foo' is a retainable type 'CFMutableArrayRef'}}
+ // expected-warning at -1{{Member variable 'c' (of 'unions::Foo') is a RetainPtr capable type 'CFMutableArrayRef'}}
dispatch_queue_t d;
- // expected-warning at -1{{Member variable 'd' in 'unions::Foo' is a retainable type 'dispatch_queue_t'}}
+ // expected-warning at -1{{Member variable 'd' (of 'unions::Foo') is a RetainPtr capable type 'dispatch_queue_t'}}
};
template<class T>
union FooTempl {
T* a;
- // expected-warning at -1{{Member variable 'a' in 'unions::FooTempl<SomeObj>' is a raw pointer to retainable type 'SomeObj'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::FooTempl<SomeObj>') is a raw pointer to RetainPtr capable type 'SomeObj'}}
};
void forceTmplToInstantiate(FooTempl<SomeObj>) {}
@@ -79,21 +79,21 @@ void forceTmplToInstantiate(FooTempl<SomeObj>) {}
struct List {
SomeObj** elements1;
- // expected-warning at -1{{Member variable 'elements1' in 'ptr_to_ptr_to_retained::List' contains a raw pointer to retainable type 'SomeObj'}}
+ // expected-warning at -1{{Member variable 'elements1' (of 'ptr_to_ptr_to_retained::List') contains a raw pointer to RetainPtr capable type 'SomeObj'}}
CFMutableArrayRef* elements2;
- // expected-warning at -1{{Member variable 'elements2' in 'ptr_to_ptr_to_retained::List' contains a retainable type 'CFMutableArrayRef'}}
+ // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::List') contains a RetainPtr capable type 'CFMutableArrayRef'}}
dispatch_queue_t* elements3;
- // expected-warning at -1{{Member variable 'elements3' in 'ptr_to_ptr_to_retained::List' contains a retainable type 'dispatch_queue_t'}}
+ // expected-warning at -1{{Member variable 'elements3' (of 'ptr_to_ptr_to_retained::List') contains a RetainPtr capable type 'dispatch_queue_t'}}
};
template <typename T, typename S, typename R>
struct TemplateList {
T** elements1;
- // expected-warning at -1{{Member variable 'elements1' in 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>' contains a raw pointer to retainable type 'SomeObj'}}
+ // expected-warning at -1{{Member variable 'elements1' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr capable type 'SomeObj'}}
S* elements2;
- // expected-warning at -1{{Member variable 'elements2' in 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>' contains a raw pointer to retainable type '__CFArray'}}
+ // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr capable type '__CFArray'}}
R* elements3;
- // expected-warning at -1{{Member variable 'elements3' in 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>' contains a raw pointer to retainable type 'NSObject'}}
+ // expected-warning at -1{{Member variable 'elements3' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr capable type 'NSObject'}}
};
TemplateList<SomeObj, CFMutableArrayRef, dispatch_queue_t> list;
@@ -106,11 +106,11 @@ void forceTmplToInstantiate(FooTempl<SomeObj>) {}
@interface AnotherObject : NSObject {
NSString *ns_string;
- // expected-warning at -1{{Instance variable 'ns_string' in 'AnotherObject' is a raw pointer to retainable type 'NSString'}}
+ // expected-warning at -1{{Instance variable 'ns_string' (of 'AnotherObject') is a raw pointer to RetainPtr capable type 'NSString'}}
CFStringRef cf_string;
- // expected-warning at -1{{Instance variable 'cf_string' in 'AnotherObject' is a retainable type 'CFStringRef'}}
+ // expected-warning at -1{{Instance variable 'cf_string' (of 'AnotherObject') is a RetainPtr capable type 'CFStringRef'}}
dispatch_queue_t dispatch;
- // expected-warning at -1{{Instance variable 'dispatch' in 'AnotherObject' is a retainable type 'dispatch_queue_t'}}
+ // expected-warning at -1{{Instance variable 'dispatch' (of 'AnotherObject') is a RetainPtr capable type 'dispatch_queue_t'}}
}
@property(nonatomic, readonly, strong) NSString *prop_string;
@property(nonatomic, readonly) NSString *prop_safe;
@@ -124,11 +124,11 @@ - (NSString *)prop_safe {
@interface DerivedObject : AnotherObject {
NSNumber *ns_number;
- // expected-warning at -1{{Instance variable 'ns_number' in 'DerivedObject' is a raw pointer to retainable type 'NSNumber'}}
+ // expected-warning at -1{{Instance variable 'ns_number' (of 'DerivedObject') is a raw pointer to RetainPtr capable type 'NSNumber'}}
CGImageRef cg_image;
- // expected-warning at -1{{Instance variable 'cg_image' in 'DerivedObject' is a retainable type 'CGImageRef'}}
+ // expected-warning at -1{{Instance variable 'cg_image' (of 'DerivedObject') is a RetainPtr capable type 'CGImageRef'}}
dispatch_queue_t os_dispatch;
- // expected-warning at -1{{Instance variable 'os_dispatch' in 'DerivedObject' is a retainable type 'dispatch_queue_t'}}
+ // expected-warning at -1{{Instance variable 'os_dispatch' (of 'DerivedObject') is a RetainPtr capable type 'dispatch_queue_t'}}
}
@property(nonatomic, strong) NSNumber *prop_number;
@property(nonatomic, readonly) NSString *prop_string;
@@ -152,13 +152,13 @@ @interface InterfaceOnlyObject2 : NSObject
@property(nonatomic, strong) NSString *prop_string1;
@property(nonatomic, assign) NSString *prop_string2;
@property(nonatomic, unsafe_unretained) NSString *prop_string3;
-// expected-warning at -1{{Property 'prop_string3' in 'DerivedObject2' is a raw pointer to retainable type 'NSString'}}
+// expected-warning at -1{{Property 'prop_string3' (of 'DerivedObject2') is a raw pointer to RetainPtr capable type 'NSString'}}
@property(nonatomic, readonly) NSString *prop_string4;
@end
@interface DerivedObject2 : InterfaceOnlyObject2
@property(nonatomic, readonly) NSString *prop_string5;
-// expected-warning at -1{{Property 'prop_string5' in 'DerivedObject2' is a raw pointer to retainable type 'NSString'}}
+// expected-warning at -1{{Property 'prop_string5' (of 'DerivedObject2') is a raw pointer to RetainPtr capable type 'NSString'}}
@end
@implementation DerivedObject2
@@ -168,18 +168,18 @@ @implementation DerivedObject2
NS_REQUIRES_PROPERTY_DEFINITIONS
@interface NoSynthObject : NSObject {
NSString *ns_string;
- // expected-warning at -1{{Instance variable 'ns_string' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'}}
+ // expected-warning at -1{{Instance variable 'ns_string' (of 'NoSynthObject') is a raw pointer to RetainPtr capable type 'NSString'}}
CFStringRef cf_string;
- // expected-warning at -1{{Instance variable 'cf_string' in 'NoSynthObject' is a retainable type 'CFStringRef'}}
+ // expected-warning at -1{{Instance variable 'cf_string' (of 'NoSynthObject') is a RetainPtr capable type 'CFStringRef'}}
dispatch_queue_t dispatch;
- // expected-warning at -1{{Instance variable 'dispatch' in 'NoSynthObject' is a retainable type 'dispatch_queue_t'}}
+ // expected-warning at -1{{Instance variable 'dispatch' (of 'NoSynthObject') is a RetainPtr capable type 'dispatch_queue_t'}}
}
@property(nonatomic, readonly, strong) NSString *prop_string1;
@property(nonatomic, readonly, strong) NSString *prop_string2;
@property(nonatomic, assign) NSString *prop_string3;
-// expected-warning at -1{{Property 'prop_string3' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning at -1{{Property 'prop_string3' (of 'NoSynthObject') is a raw pointer to RetainPtr capable type 'NSString'}}
@property(nonatomic, unsafe_unretained) NSString *prop_string4;
-// expected-warning at -1{{Property 'prop_string4' in 'NoSynthObject' is a raw pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning at -1{{Property 'prop_string4' (of 'NoSynthObject') is a raw pointer to RetainPtr capable type 'NSString'}}
@property(nonatomic, copy) NSString *prop_string5;
@property(nonatomic, readonly, strong) dispatch_queue_t dispatch;
@end
>From 654b28f16851fed95a3ce49450bb265a727534ec Mon Sep 17 00:00:00 2001
From: Ryosuke Niwa <rniwa at webkit.org>
Date: Thu, 9 Jul 2026 17:02:43 -0700
Subject: [PATCH 2/2] Revise '*Ptr capable type' to '*Ptr-capable type'.
---
.../WebKit/RawPtrRefMemberChecker.cpp | 6 +-
.../Checkers/WebKit/unchecked-members-objc.mm | 4 +-
.../Checkers/WebKit/unchecked-members.cpp | 14 ++---
.../Checkers/WebKit/uncounted-members-objc.mm | 4 +-
...nted-members-ref-deref-on-diff-classes.cpp | 2 +-
.../Checkers/WebKit/uncounted-members.cpp | 14 ++---
.../Checkers/WebKit/unretained-members-arc.mm | 24 ++++----
.../Checkers/WebKit/unretained-members.mm | 60 +++++++++----------
8 files changed, 64 insertions(+), 64 deletions(-)
diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
index 371b0a6477ac3..bac15bc31e048 100644
--- a/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
@@ -331,7 +331,7 @@ class NoUncountedMemberChecker final : public RawPtrRefMemberChecker {
return isUncountedPtr(QT.getCanonicalType());
}
- const char *typeName() const final { return "RefPtr capable type"; }
+ const char *typeName() const final { return "RefPtr-capable type"; }
};
class NoUncheckedPtrMemberChecker final : public RawPtrRefMemberChecker {
@@ -344,7 +344,7 @@ class NoUncheckedPtrMemberChecker final : public RawPtrRefMemberChecker {
return isUncheckedPtr(QT.getCanonicalType());
}
- const char *typeName() const final { return "CheckedPtr capable type"; }
+ const char *typeName() const final { return "CheckedPtr-capable type"; }
};
class NoUnretainedMemberChecker final : public RawPtrRefMemberChecker {
@@ -361,7 +361,7 @@ class NoUnretainedMemberChecker final : public RawPtrRefMemberChecker {
return RTC->isUnretained(QT, ignoreARC);
}
- const char *typeName() const final { return "RetainPtr capable type"; }
+ const char *typeName() const final { return "RetainPtr-capable type"; }
PrintDeclKind printPointer(llvm::raw_svector_ostream &Os,
const Type *T) const final {
diff --git a/clang/test/Analysis/Checkers/WebKit/unchecked-members-objc.mm b/clang/test/Analysis/Checkers/WebKit/unchecked-members-objc.mm
index 90ac6fc8ca283..9ab9460630ec4 100644
--- a/clang/test/Analysis/Checkers/WebKit/unchecked-members-objc.mm
+++ b/clang/test/Analysis/Checkers/WebKit/unchecked-members-objc.mm
@@ -14,7 +14,7 @@ - (void)release;
@interface SomeObjC : NSObject {
CheckedObj* _unchecked1;
-// expected-warning at -1{{Instance variable '_unchecked1' (of 'SomeObjC') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning at -1{{Instance variable '_unchecked1' (of 'SomeObjC') is a raw pointer to CheckedPtr-capable type 'CheckedObj'}}
CheckedPtr<CheckedObj> _counted1;
[[clang::suppress]] CheckedObj* _unchecked2;
}
@@ -23,7 +23,7 @@ - (void)doWork;
@implementation SomeObjC {
CheckedObj* _unchecked3;
-// expected-warning at -1{{Instance variable '_unchecked3' (of 'SomeObjC') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning at -1{{Instance variable '_unchecked3' (of 'SomeObjC') is a raw pointer to CheckedPtr-capable type 'CheckedObj'}}
CheckedPtr<CheckedObj> _counted2;
[[clang::suppress]] CheckedObj* _unchecked4;
}
diff --git a/clang/test/Analysis/Checkers/WebKit/unchecked-members.cpp b/clang/test/Analysis/Checkers/WebKit/unchecked-members.cpp
index adc6aacfe528e..48f9f2119de2b 100644
--- a/clang/test/Analysis/Checkers/WebKit/unchecked-members.cpp
+++ b/clang/test/Analysis/Checkers/WebKit/unchecked-members.cpp
@@ -7,9 +7,9 @@ namespace members {
struct Foo {
private:
CheckedObj* a = nullptr;
-// expected-warning at -1{{Member variable 'a' (of 'members::Foo') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning at -1{{Member variable 'a' (of 'members::Foo') is a raw pointer to CheckedPtr-capable type 'CheckedObj'}}
CheckedObj& b;
-// expected-warning at -1{{Member variable 'b' (of 'members::Foo') is a reference to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning at -1{{Member variable 'b' (of 'members::Foo') is a reference to CheckedPtr-capable type 'CheckedObj'}}
[[clang::suppress]]
CheckedObj* a_suppressed = nullptr;
@@ -27,7 +27,7 @@ namespace members {
template <typename S>
struct FooTmpl {
S* e;
-// expected-warning at -1{{Member variable 'e' (of 'members::FooTmpl<CheckedObj>') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning at -1{{Member variable 'e' (of 'members::FooTmpl<CheckedObj>') is a raw pointer to CheckedPtr-capable type 'CheckedObj'}}
};
void forceTmplToInstantiate(FooTmpl<CheckedObj>) { }
@@ -38,7 +38,7 @@ namespace unions {
union Foo {
CheckedObj* a;
- // expected-warning at -1{{Member variable 'a' (of 'unions::Foo') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::Foo') is a raw pointer to CheckedPtr-capable type 'CheckedObj'}}
CheckedPtr<CheckedObj> c;
CheckedRef<CheckedObj> d;
};
@@ -46,7 +46,7 @@ namespace unions {
template<class T>
union FooTmpl {
T* a;
- // expected-warning at -1{{Member variable 'a' (of 'unions::FooTmpl<CheckedObj>') is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::FooTmpl<CheckedObj>') is a raw pointer to CheckedPtr-capable type 'CheckedObj'}}
};
void forceTmplToInstantiate(FooTmpl<CheckedObj>) { }
@@ -66,13 +66,13 @@ namespace ptr_to_ptr_to_checked_ptr_capable {
struct List {
CheckedObj** elements;
- // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_checked_ptr_capable::List') contains a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+ // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_checked_ptr_capable::List') contains a raw pointer to CheckedPtr-capable type 'CheckedObj'}}
};
template <typename T>
struct TemplateList {
T** elements;
- // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_checked_ptr_capable::TemplateList<CheckedObj>') contains a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+ // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_checked_ptr_capable::TemplateList<CheckedObj>') contains a raw pointer to CheckedPtr-capable type 'CheckedObj'}}
};
TemplateList<CheckedObj> list;
diff --git a/clang/test/Analysis/Checkers/WebKit/uncounted-members-objc.mm b/clang/test/Analysis/Checkers/WebKit/uncounted-members-objc.mm
index 30d54d9949de9..2e0959c96cade 100644
--- a/clang/test/Analysis/Checkers/WebKit/uncounted-members-objc.mm
+++ b/clang/test/Analysis/Checkers/WebKit/uncounted-members-objc.mm
@@ -14,7 +14,7 @@ - (void)release;
@interface SomeObjC : NSObject {
RefCountable* _uncounted1;
-// expected-warning at -1{{Instance variable '_uncounted1' (of 'SomeObjC') is a raw pointer to RefPtr capable type 'RefCountable'}}
+// expected-warning at -1{{Instance variable '_uncounted1' (of 'SomeObjC') is a raw pointer to RefPtr-capable type 'RefCountable'}}
RefPtr<RefCountable> _counted1;
[[clang::suppress]] RefCountable* _uncounted2;
}
@@ -23,7 +23,7 @@ - (void)doWork;
@implementation SomeObjC {
RefCountable* _uncounted3;
-// expected-warning at -1{{Instance variable '_uncounted3' (of 'SomeObjC') is a raw pointer to RefPtr capable type 'RefCountable'}}
+// expected-warning at -1{{Instance variable '_uncounted3' (of 'SomeObjC') is a raw pointer to RefPtr-capable type 'RefCountable'}}
RefPtr<RefCountable> _counted2;
[[clang::suppress]] RefCountable* _uncounted4;
}
diff --git a/clang/test/Analysis/Checkers/WebKit/uncounted-members-ref-deref-on-diff-classes.cpp b/clang/test/Analysis/Checkers/WebKit/uncounted-members-ref-deref-on-diff-classes.cpp
index 1b70b5bac85ad..2e69998db5974 100644
--- a/clang/test/Analysis/Checkers/WebKit/uncounted-members-ref-deref-on-diff-classes.cpp
+++ b/clang/test/Analysis/Checkers/WebKit/uncounted-members-ref-deref-on-diff-classes.cpp
@@ -19,5 +19,5 @@ class TreeNode : public RefCounted<TreeNode> {
private:
TreeNode* m_parent;
-// expected-warning at -1{{Member variable 'm_parent' (of 'TreeNode') is a raw pointer to RefPtr capable type 'TreeNode'}}
+// expected-warning at -1{{Member variable 'm_parent' (of 'TreeNode') is a raw pointer to RefPtr-capable type 'TreeNode'}}
};
diff --git a/clang/test/Analysis/Checkers/WebKit/uncounted-members.cpp b/clang/test/Analysis/Checkers/WebKit/uncounted-members.cpp
index a0876c6b855b7..4da8818f0fc9a 100644
--- a/clang/test/Analysis/Checkers/WebKit/uncounted-members.cpp
+++ b/clang/test/Analysis/Checkers/WebKit/uncounted-members.cpp
@@ -7,7 +7,7 @@ namespace members {
struct Foo {
private:
RefCountable* a = nullptr;
-// expected-warning at -1{{Member variable 'a' (of 'members::Foo') is a raw pointer to RefPtr capable type 'RefCountable'}}
+// expected-warning at -1{{Member variable 'a' (of 'members::Foo') is a raw pointer to RefPtr-capable type 'RefCountable'}}
[[clang::suppress]]
RefCountable* a_suppressed = nullptr;
@@ -18,14 +18,14 @@ namespace members {
public:
RefCountable silenceWarningAboutInit;
RefCountable& c = silenceWarningAboutInit;
-// expected-warning at -1{{Member variable 'c' (of 'members::Foo') is a reference to RefPtr capable type 'RefCountable'}}
+// expected-warning at -1{{Member variable 'c' (of 'members::Foo') is a reference to RefPtr-capable type 'RefCountable'}}
Ref<RefCountable> d;
};
template<class T>
struct FooTmpl {
T* a;
-// expected-warning at -1{{Member variable 'a' (of 'members::FooTmpl<RefCountable>') is a raw pointer to RefPtr capable type 'RefCountable'}}
+// expected-warning at -1{{Member variable 'a' (of 'members::FooTmpl<RefCountable>') is a raw pointer to RefPtr-capable type 'RefCountable'}}
};
void forceTmplToInstantiate(FooTmpl<RefCountable>) {}
@@ -39,7 +39,7 @@ namespace members {
namespace unions {
union Foo {
RefCountable* a;
- // expected-warning at -1{{Member variable 'a' (of 'unions::Foo') is a raw pointer to RefPtr capable type 'RefCountable'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::Foo') is a raw pointer to RefPtr-capable type 'RefCountable'}}
RefPtr<RefCountable> b;
Ref<RefCountable> c;
};
@@ -47,7 +47,7 @@ namespace unions {
template<class T>
union FooTmpl {
T* a;
- // expected-warning at -1{{Member variable 'a' (of 'unions::FooTmpl<RefCountable>') is a raw pointer to RefPtr capable type 'RefCountable'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::FooTmpl<RefCountable>') is a raw pointer to RefPtr-capable type 'RefCountable'}}
};
void forceTmplToInstantiate(FooTmpl<RefCountable>) {}
@@ -84,13 +84,13 @@ namespace ptr_to_ptr_to_ref_counted {
struct List {
RefCountable** elements;
- // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_ref_counted::List') contains a raw pointer to RefPtr capable type 'RefCountable'}}
+ // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_ref_counted::List') contains a raw pointer to RefPtr-capable type 'RefCountable'}}
};
template <typename T>
struct TemplateList {
T** elements;
- // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_ref_counted::TemplateList<RefCountable>') contains a raw pointer to RefPtr capable type 'RefCountable'}}
+ // expected-warning at -1{{Member variable 'elements' (of 'ptr_to_ptr_to_ref_counted::TemplateList<RefCountable>') contains a raw pointer to RefPtr-capable type 'RefCountable'}}
};
TemplateList<RefCountable> list;
diff --git a/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm b/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm
index 6d29e7d4994c5..ca70b75fc7557 100644
--- a/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm
+++ b/clang/test/Analysis/Checkers/WebKit/unretained-members-arc.mm
@@ -19,7 +19,7 @@
RetainPtr<SomeObj> d;
CFMutableArrayRef e = nullptr;
-// expected-warning at -1{{Member variable 'e' (of 'members::Foo') is a RetainPtr capable type 'CFMutableArrayRef'}}
+// expected-warning at -1{{Member variable 'e' (of 'members::Foo') is a RetainPtr-capable type 'CFMutableArrayRef'}}
dispatch_queue_t f = nullptr;
};
@@ -27,7 +27,7 @@
union FooUnion {
SomeObj* a;
CFMutableArrayRef b;
- // expected-warning at -1{{Member variable 'b' (of 'members::FooUnion') is a RetainPtr capable type 'CFMutableArrayRef'}}
+ // expected-warning at -1{{Member variable 'b' (of 'members::FooUnion') is a RetainPtr-capable type 'CFMutableArrayRef'}}
dispatch_queue_t c;
};
@@ -35,7 +35,7 @@
struct FooTmpl {
T* x;
S y;
-// expected-warning at -1{{Member variable 'y' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr capable type}}
+// expected-warning at -1{{Member variable 'y' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr-capable type}}
R z;
};
@@ -52,14 +52,14 @@ void forceTmplToInstantiate(FooTmpl<SomeObj, CFMutableArrayRef, dispatch_queue_t
struct List {
CFMutableArrayRef* elements2;
- // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::List') contains a RetainPtr capable type 'CFMutableArrayRef'}}
+ // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::List') contains a RetainPtr-capable type 'CFMutableArrayRef'}}
};
template <typename T, typename S, typename R>
struct TemplateList {
T* elements1;
S* elements2;
- // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr capable type '__CFArray'}}
+ // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr-capable type '__CFArray'}}
R* elements3;
};
TemplateList<SomeObj, CFMutableArrayRef, dispatch_queue_t> list;
@@ -75,14 +75,14 @@ void forceTmplToInstantiate(FooTmpl<SomeObj, CFMutableArrayRef, dispatch_queue_t
@interface AnotherObject : NSObject {
NSString *ns_string;
CFStringRef cf_string;
- // expected-warning at -1{{Instance variable 'cf_string' (of 'AnotherObject') is a RetainPtr capable type 'CFStringRef'}}
+ // expected-warning at -1{{Instance variable 'cf_string' (of 'AnotherObject') is a RetainPtr-capable type 'CFStringRef'}}
dispatch_queue_t queue;
}
@property(nonatomic, strong) NSString *prop_string1;
@property(nonatomic, assign) NSString *prop_string2;
-// expected-warning at -1{{Property 'prop_string2' (of 'AnotherObject') is a raw pointer to RetainPtr capable type 'NSString'}}
+// expected-warning at -1{{Property 'prop_string2' (of 'AnotherObject') is a raw pointer to RetainPtr-capable type 'NSString'}}
@property(nonatomic, unsafe_unretained) NSString *prop_string3;
-// expected-warning at -1{{Property 'prop_string3' (of 'AnotherObject') is a raw pointer to RetainPtr capable type 'NSString'}}
+// expected-warning at -1{{Property 'prop_string3' (of 'AnotherObject') is a raw pointer to RetainPtr-capable type 'NSString'}}
@property(nonatomic, readonly) NSString *prop_string4;
@property(nonatomic, readonly) NSString *prop_safe;
@end
@@ -106,16 +106,16 @@ @interface InterfaceOnlyObject : NSObject
@interface NoSynthObject : NSObject {
NSString *ns_string;
CFStringRef cf_string;
- // expected-warning at -1{{Instance variable 'cf_string' (of 'NoSynthObject') is a RetainPtr capable type 'CFStringRef'}}
+ // expected-warning at -1{{Instance variable 'cf_string' (of 'NoSynthObject') is a RetainPtr-capable type 'CFStringRef'}}
}
@property(nonatomic, readonly, strong) NSString *prop_string1;
@property(nonatomic, readonly, strong) NSString *prop_string2;
@property(nonatomic, assign) NSString *prop_string3;
-// expected-warning at -1{{Property 'prop_string3' (of 'NoSynthObject') is a raw pointer to RetainPtr capable type 'NSString'}}
+// expected-warning at -1{{Property 'prop_string3' (of 'NoSynthObject') is a raw pointer to RetainPtr-capable type 'NSString'}}
@property(nonatomic, unsafe_unretained) NSString *prop_string4;
-// expected-warning at -1{{Property 'prop_string4' (of 'NoSynthObject') is a raw pointer to RetainPtr capable type 'NSString'}}
+// expected-warning at -1{{Property 'prop_string4' (of 'NoSynthObject') is a raw pointer to RetainPtr-capable type 'NSString'}}
@property(nonatomic, unsafe_unretained) dispatch_queue_t prop_string5;
-// expected-warning at -1{{Property 'prop_string5' (of 'NoSynthObject') is a RetainPtr capable type 'dispatch_queue_t'}}
+// expected-warning at -1{{Property 'prop_string5' (of 'NoSynthObject') is a RetainPtr-capable type 'dispatch_queue_t'}}
@end
@implementation NoSynthObject
diff --git a/clang/test/Analysis/Checkers/WebKit/unretained-members.mm b/clang/test/Analysis/Checkers/WebKit/unretained-members.mm
index be3055af6eed6..51c9b7851d96d 100644
--- a/clang/test/Analysis/Checkers/WebKit/unretained-members.mm
+++ b/clang/test/Analysis/Checkers/WebKit/unretained-members.mm
@@ -10,9 +10,9 @@
struct Foo {
private:
SomeObj* a = nullptr;
-// expected-warning at -1{{Member variable 'a' (of 'members::Foo') is a raw pointer to RetainPtr capable type}}
+// expected-warning at -1{{Member variable 'a' (of 'members::Foo') is a raw pointer to RetainPtr-capable type}}
dispatch_queue_t a2 = nullptr;
-// expected-warning at -1{{Member variable 'a2' (of 'members::Foo') is a RetainPtr capable type 'dispatch_queue_t'}}
+// expected-warning at -1{{Member variable 'a2' (of 'members::Foo') is a RetainPtr-capable type 'dispatch_queue_t'}}
[[clang::suppress]]
SomeObj* a_suppressed = nullptr;
@@ -26,23 +26,23 @@
public:
SomeObj* c = nullptr;
-// expected-warning at -1{{Member variable 'c' (of 'members::Foo') is a raw pointer to RetainPtr capable type}}
+// expected-warning at -1{{Member variable 'c' (of 'members::Foo') is a raw pointer to RetainPtr-capable type}}
RetainPtr<SomeObj> d;
OSObjectPtr<dispatch_queue_t> d2;
CFMutableArrayRef e = nullptr;
-// expected-warning at -1{{Member variable 'e' (of 'members::Foo') is a RetainPtr capable type 'CFMutableArrayRef'}}
+// expected-warning at -1{{Member variable 'e' (of 'members::Foo') is a RetainPtr-capable type 'CFMutableArrayRef'}}
};
template<class T, class S, class R>
struct FooTmpl {
T* a;
-// expected-warning at -1{{Member variable 'a' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr capable type}}
+// expected-warning at -1{{Member variable 'a' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr-capable type}}
S b;
-// expected-warning at -1{{Member variable 'b' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr capable type}}
+// expected-warning at -1{{Member variable 'b' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr-capable type}}
R c;
-// expected-warning at -1{{Member variable 'c' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr capable type}}
+// expected-warning at -1{{Member variable 'c' (of 'members::FooTmpl<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') is a raw pointer to RetainPtr-capable type}}
};
void forceTmplToInstantiate(FooTmpl<SomeObj, CFMutableArrayRef, dispatch_queue_t>) {}
@@ -58,18 +58,18 @@ void forceTmplToInstantiate(FooTmpl<SomeObj, CFMutableArrayRef, dispatch_queue_t
namespace unions {
union Foo {
SomeObj* a;
- // expected-warning at -1{{Member variable 'a' (of 'unions::Foo') is a raw pointer to RetainPtr capable type 'SomeObj'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::Foo') is a raw pointer to RetainPtr-capable type 'SomeObj'}}
RetainPtr<SomeObj> b;
CFMutableArrayRef c;
- // expected-warning at -1{{Member variable 'c' (of 'unions::Foo') is a RetainPtr capable type 'CFMutableArrayRef'}}
+ // expected-warning at -1{{Member variable 'c' (of 'unions::Foo') is a RetainPtr-capable type 'CFMutableArrayRef'}}
dispatch_queue_t d;
- // expected-warning at -1{{Member variable 'd' (of 'unions::Foo') is a RetainPtr capable type 'dispatch_queue_t'}}
+ // expected-warning at -1{{Member variable 'd' (of 'unions::Foo') is a RetainPtr-capable type 'dispatch_queue_t'}}
};
template<class T>
union FooTempl {
T* a;
- // expected-warning at -1{{Member variable 'a' (of 'unions::FooTempl<SomeObj>') is a raw pointer to RetainPtr capable type 'SomeObj'}}
+ // expected-warning at -1{{Member variable 'a' (of 'unions::FooTempl<SomeObj>') is a raw pointer to RetainPtr-capable type 'SomeObj'}}
};
void forceTmplToInstantiate(FooTempl<SomeObj>) {}
@@ -79,21 +79,21 @@ void forceTmplToInstantiate(FooTempl<SomeObj>) {}
struct List {
SomeObj** elements1;
- // expected-warning at -1{{Member variable 'elements1' (of 'ptr_to_ptr_to_retained::List') contains a raw pointer to RetainPtr capable type 'SomeObj'}}
+ // expected-warning at -1{{Member variable 'elements1' (of 'ptr_to_ptr_to_retained::List') contains a raw pointer to RetainPtr-capable type 'SomeObj'}}
CFMutableArrayRef* elements2;
- // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::List') contains a RetainPtr capable type 'CFMutableArrayRef'}}
+ // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::List') contains a RetainPtr-capable type 'CFMutableArrayRef'}}
dispatch_queue_t* elements3;
- // expected-warning at -1{{Member variable 'elements3' (of 'ptr_to_ptr_to_retained::List') contains a RetainPtr capable type 'dispatch_queue_t'}}
+ // expected-warning at -1{{Member variable 'elements3' (of 'ptr_to_ptr_to_retained::List') contains a RetainPtr-capable type 'dispatch_queue_t'}}
};
template <typename T, typename S, typename R>
struct TemplateList {
T** elements1;
- // expected-warning at -1{{Member variable 'elements1' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr capable type 'SomeObj'}}
+ // expected-warning at -1{{Member variable 'elements1' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr-capable type 'SomeObj'}}
S* elements2;
- // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr capable type '__CFArray'}}
+ // expected-warning at -1{{Member variable 'elements2' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr-capable type '__CFArray'}}
R* elements3;
- // expected-warning at -1{{Member variable 'elements3' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr capable type 'NSObject'}}
+ // expected-warning at -1{{Member variable 'elements3' (of 'ptr_to_ptr_to_retained::TemplateList<SomeObj, __CFArray *, NSObject<OS_dispatch_queue> *>') contains a raw pointer to RetainPtr-capable type 'NSObject'}}
};
TemplateList<SomeObj, CFMutableArrayRef, dispatch_queue_t> list;
@@ -106,11 +106,11 @@ void forceTmplToInstantiate(FooTempl<SomeObj>) {}
@interface AnotherObject : NSObject {
NSString *ns_string;
- // expected-warning at -1{{Instance variable 'ns_string' (of 'AnotherObject') is a raw pointer to RetainPtr capable type 'NSString'}}
+ // expected-warning at -1{{Instance variable 'ns_string' (of 'AnotherObject') is a raw pointer to RetainPtr-capable type 'NSString'}}
CFStringRef cf_string;
- // expected-warning at -1{{Instance variable 'cf_string' (of 'AnotherObject') is a RetainPtr capable type 'CFStringRef'}}
+ // expected-warning at -1{{Instance variable 'cf_string' (of 'AnotherObject') is a RetainPtr-capable type 'CFStringRef'}}
dispatch_queue_t dispatch;
- // expected-warning at -1{{Instance variable 'dispatch' (of 'AnotherObject') is a RetainPtr capable type 'dispatch_queue_t'}}
+ // expected-warning at -1{{Instance variable 'dispatch' (of 'AnotherObject') is a RetainPtr-capable type 'dispatch_queue_t'}}
}
@property(nonatomic, readonly, strong) NSString *prop_string;
@property(nonatomic, readonly) NSString *prop_safe;
@@ -124,11 +124,11 @@ - (NSString *)prop_safe {
@interface DerivedObject : AnotherObject {
NSNumber *ns_number;
- // expected-warning at -1{{Instance variable 'ns_number' (of 'DerivedObject') is a raw pointer to RetainPtr capable type 'NSNumber'}}
+ // expected-warning at -1{{Instance variable 'ns_number' (of 'DerivedObject') is a raw pointer to RetainPtr-capable type 'NSNumber'}}
CGImageRef cg_image;
- // expected-warning at -1{{Instance variable 'cg_image' (of 'DerivedObject') is a RetainPtr capable type 'CGImageRef'}}
+ // expected-warning at -1{{Instance variable 'cg_image' (of 'DerivedObject') is a RetainPtr-capable type 'CGImageRef'}}
dispatch_queue_t os_dispatch;
- // expected-warning at -1{{Instance variable 'os_dispatch' (of 'DerivedObject') is a RetainPtr capable type 'dispatch_queue_t'}}
+ // expected-warning at -1{{Instance variable 'os_dispatch' (of 'DerivedObject') is a RetainPtr-capable type 'dispatch_queue_t'}}
}
@property(nonatomic, strong) NSNumber *prop_number;
@property(nonatomic, readonly) NSString *prop_string;
@@ -152,13 +152,13 @@ @interface InterfaceOnlyObject2 : NSObject
@property(nonatomic, strong) NSString *prop_string1;
@property(nonatomic, assign) NSString *prop_string2;
@property(nonatomic, unsafe_unretained) NSString *prop_string3;
-// expected-warning at -1{{Property 'prop_string3' (of 'DerivedObject2') is a raw pointer to RetainPtr capable type 'NSString'}}
+// expected-warning at -1{{Property 'prop_string3' (of 'DerivedObject2') is a raw pointer to RetainPtr-capable type 'NSString'}}
@property(nonatomic, readonly) NSString *prop_string4;
@end
@interface DerivedObject2 : InterfaceOnlyObject2
@property(nonatomic, readonly) NSString *prop_string5;
-// expected-warning at -1{{Property 'prop_string5' (of 'DerivedObject2') is a raw pointer to RetainPtr capable type 'NSString'}}
+// expected-warning at -1{{Property 'prop_string5' (of 'DerivedObject2') is a raw pointer to RetainPtr-capable type 'NSString'}}
@end
@implementation DerivedObject2
@@ -168,18 +168,18 @@ @implementation DerivedObject2
NS_REQUIRES_PROPERTY_DEFINITIONS
@interface NoSynthObject : NSObject {
NSString *ns_string;
- // expected-warning at -1{{Instance variable 'ns_string' (of 'NoSynthObject') is a raw pointer to RetainPtr capable type 'NSString'}}
+ // expected-warning at -1{{Instance variable 'ns_string' (of 'NoSynthObject') is a raw pointer to RetainPtr-capable type 'NSString'}}
CFStringRef cf_string;
- // expected-warning at -1{{Instance variable 'cf_string' (of 'NoSynthObject') is a RetainPtr capable type 'CFStringRef'}}
+ // expected-warning at -1{{Instance variable 'cf_string' (of 'NoSynthObject') is a RetainPtr-capable type 'CFStringRef'}}
dispatch_queue_t dispatch;
- // expected-warning at -1{{Instance variable 'dispatch' (of 'NoSynthObject') is a RetainPtr capable type 'dispatch_queue_t'}}
+ // expected-warning at -1{{Instance variable 'dispatch' (of 'NoSynthObject') is a RetainPtr-capable type 'dispatch_queue_t'}}
}
@property(nonatomic, readonly, strong) NSString *prop_string1;
@property(nonatomic, readonly, strong) NSString *prop_string2;
@property(nonatomic, assign) NSString *prop_string3;
-// expected-warning at -1{{Property 'prop_string3' (of 'NoSynthObject') is a raw pointer to RetainPtr capable type 'NSString'}}
+// expected-warning at -1{{Property 'prop_string3' (of 'NoSynthObject') is a raw pointer to RetainPtr-capable type 'NSString'}}
@property(nonatomic, unsafe_unretained) NSString *prop_string4;
-// expected-warning at -1{{Property 'prop_string4' (of 'NoSynthObject') is a raw pointer to RetainPtr capable type 'NSString'}}
+// expected-warning at -1{{Property 'prop_string4' (of 'NoSynthObject') is a raw pointer to RetainPtr-capable type 'NSString'}}
@property(nonatomic, copy) NSString *prop_string5;
@property(nonatomic, readonly, strong) dispatch_queue_t dispatch;
@end
More information about the cfe-commits
mailing list