https://github.com/rniwa created 
https://github.com/llvm/llvm-project/pull/204557

This PR aligns NoUncountedMemberChecker and its variant's warning message with 
the new warning format in https://github.com/llvm/llvm-project/pull/202724.

>From cf95350a0c4edfdb74952620dc0c0290ca78ce28 Mon Sep 17 00:00:00 2001
From: Ryosuke Niwa <[email protected]>
Date: Thu, 18 Jun 2026 13:07:30 +0200
Subject: [PATCH] [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@-1{{Instance variable '_unchecked1' in 'SomeObjC' is a raw 
pointer to CheckedPtr capable type 'CheckedObj'}}  
+// expected-warning@-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@-1{{Instance variable '_unchecked3' in 'SomeObjC' is a raw 
pointer to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning@-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@-1{{Member variable 'a' in 'members::Foo' is a raw pointer 
to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning@-1{{Member variable 'a' (of 'members::Foo') is a raw 
pointer to CheckedPtr capable type 'CheckedObj'}}
     CheckedObj& b;
-// expected-warning@-1{{Member variable 'b' in 'members::Foo' is a reference 
to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning@-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@-1{{Member variable 'e' in 'members::FooTmpl<CheckedObj>' 
is a raw pointer to CheckedPtr capable type 'CheckedObj'}}
+// expected-warning@-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@-1{{Member variable 'a' in 'unions::Foo' is a raw 
pointer to CheckedPtr capable type 'CheckedObj'}}
+    // expected-warning@-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@-1{{Member variable 'a' in 
'unions::FooTmpl<CheckedObj>' is a raw pointer to CheckedPtr capable type 
'CheckedObj'}}
+    // expected-warning@-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@-1{{Member variable 'elements' in 
'ptr_to_ptr_to_checked_ptr_capable::List' contains a raw pointer to CheckedPtr 
capable type 'CheckedObj'}}
+    // expected-warning@-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@-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@-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@-1{{Instance variable '_uncounted1' in 'SomeObjC' is a raw 
pointer to ref-countable type 'RefCountable'}}  
+// expected-warning@-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@-1{{Instance variable '_uncounted3' in 'SomeObjC' is a raw 
pointer to ref-countable type 'RefCountable'}}
+// expected-warning@-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@-1{{Member variable 'm_parent' in 'TreeNode' is a raw 
pointer to ref-countable type 'TreeNode'}}
+// expected-warning@-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@-1{{Member variable 'a' in 'members::Foo' is a raw pointer 
to ref-countable type 'RefCountable'}}
+// expected-warning@-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@-1{{Member variable 'c' in 'members::Foo' is a reference 
to ref-countable type 'RefCountable'}}
+// expected-warning@-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@-1{{Member variable 'a' in 
'members::FooTmpl<RefCountable>' is a raw pointer to ref-countable type 
'RefCountable'}}
+// expected-warning@-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@-1{{Member variable 'a' in 'unions::Foo' is a raw 
pointer to ref-countable type 'RefCountable'}}
+    // expected-warning@-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@-1{{Member variable 'a' in 
'unions::FooTmpl<RefCountable>' is a raw pointer to ref-countable type 
'RefCountable'}}
+    // expected-warning@-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@-1{{Member variable 'elements' in 
'ptr_to_ptr_to_ref_counted::List' contains a raw pointer to ref-countable type 
'RefCountable'}}
+    // expected-warning@-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@-1{{Member variable 'elements' in 
'ptr_to_ptr_to_ref_counted::TemplateList<RefCountable>' contains a raw pointer 
to ref-countable type 'RefCountable'}}
+    // expected-warning@-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@-1{{Member variable 'e' in 'members::Foo' is a retainable 
type 'CFMutableArrayRef'}}
+// expected-warning@-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@-1{{Member variable 'b' in 'members::FooUnion' is a 
retainable type 'CFMutableArrayRef'}}
+    // expected-warning@-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@-1{{Member variable 'y' in 'members::FooTmpl<SomeObj, 
__CFArray *, NSObject<OS_dispatch_queue> *>' is a raw pointer to retainable 
type}}
+// expected-warning@-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@-1{{Member variable 'elements2' in 
'ptr_to_ptr_to_retained::List' contains a retainable type 'CFMutableArrayRef'}}
+    // expected-warning@-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@-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@-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@-1{{Instance variable 'cf_string' in 'AnotherObject' is 
a retainable type 'CFStringRef'; member variables must be a RetainPtr}}
+  // expected-warning@-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@-1{{Property 'prop_string2' in 'AnotherObject' is a raw 
pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning@-1{{Property 'prop_string2' (of 'AnotherObject') is a raw 
pointer to RetainPtr capable type 'NSString'}}
 @property(nonatomic, unsafe_unretained) NSString *prop_string3;
-// expected-warning@-1{{Property 'prop_string3' in 'AnotherObject' is a raw 
pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning@-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@-1{{Instance variable 'cf_string' in 'NoSynthObject' is 
a retainable type 'CFStringRef'; member variables must be a RetainPtr}}
+  // expected-warning@-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@-1{{Property 'prop_string3' in 'NoSynthObject' is a raw 
pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning@-1{{Property 'prop_string3' (of 'NoSynthObject') is a raw 
pointer to RetainPtr capable type 'NSString'}}
 @property(nonatomic, unsafe_unretained) NSString *prop_string4;
-// expected-warning@-1{{Property 'prop_string4' in 'NoSynthObject' is a raw 
pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning@-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@-1{{Property 'prop_string5' in 'NoSynthObject' is a 
retainable type 'dispatch_queue_t'}}
+// expected-warning@-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@-1{{Member variable 'a' in 'members::Foo' is a raw pointer 
to retainable type}}
+// expected-warning@-1{{Member variable 'a' (of 'members::Foo') is a raw 
pointer to RetainPtr capable type}}
     dispatch_queue_t a2 = nullptr;
-// expected-warning@-1{{Member variable 'a2' in 'members::Foo' is a retainable 
type 'dispatch_queue_t'}}
+// expected-warning@-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@-1{{Member variable 'c' in 'members::Foo' is a raw pointer 
to retainable type}}
+// expected-warning@-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@-1{{Member variable 'e' in 'members::Foo' is a retainable 
type 'CFMutableArrayRef'}}
+// expected-warning@-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@-1{{Member variable 'a' in 'members::FooTmpl<SomeObj, 
__CFArray *, NSObject<OS_dispatch_queue> *>' is a raw pointer to retainable 
type}}
+// expected-warning@-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@-1{{Member variable 'b' in 'members::FooTmpl<SomeObj, 
__CFArray *, NSObject<OS_dispatch_queue> *>' is a raw pointer to retainable 
type}}
+// expected-warning@-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@-1{{Member variable 'c' in 'members::FooTmpl<SomeObj, 
__CFArray *, NSObject<OS_dispatch_queue> *>' is a raw pointer to retainable 
type}}
+// expected-warning@-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@-1{{Member variable 'a' in 'unions::Foo' is a raw 
pointer to retainable type 'SomeObj'}}
+    // expected-warning@-1{{Member variable 'a' (of 'unions::Foo') is a raw 
pointer to RetainPtr capable type 'SomeObj'}}
     RetainPtr<SomeObj> b;
     CFMutableArrayRef c;
-    // expected-warning@-1{{Member variable 'c' in 'unions::Foo' is a 
retainable type 'CFMutableArrayRef'}}
+    // expected-warning@-1{{Member variable 'c' (of 'unions::Foo') is a 
RetainPtr capable type 'CFMutableArrayRef'}}
     dispatch_queue_t d;
-    // expected-warning@-1{{Member variable 'd' in 'unions::Foo' is a 
retainable type 'dispatch_queue_t'}}
+    // expected-warning@-1{{Member variable 'd' (of 'unions::Foo') is a 
RetainPtr capable type 'dispatch_queue_t'}}
   };
 
   template<class T>
   union FooTempl {
     T* a;
-    // expected-warning@-1{{Member variable 'a' in 'unions::FooTempl<SomeObj>' 
is a raw pointer to retainable type 'SomeObj'}}
+    // expected-warning@-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@-1{{Member variable 'elements1' in 
'ptr_to_ptr_to_retained::List' contains a raw pointer to retainable type 
'SomeObj'}}
+    // expected-warning@-1{{Member variable 'elements1' (of 
'ptr_to_ptr_to_retained::List') contains a raw pointer to RetainPtr capable 
type 'SomeObj'}}
     CFMutableArrayRef* elements2;
-    // expected-warning@-1{{Member variable 'elements2' in 
'ptr_to_ptr_to_retained::List' contains a retainable type 'CFMutableArrayRef'}}
+    // expected-warning@-1{{Member variable 'elements2' (of 
'ptr_to_ptr_to_retained::List') contains a RetainPtr capable type 
'CFMutableArrayRef'}}
     dispatch_queue_t* elements3;
-    // expected-warning@-1{{Member variable 'elements3' in 
'ptr_to_ptr_to_retained::List' contains a retainable type 'dispatch_queue_t'}}
+    // expected-warning@-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@-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@-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@-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@-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@-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@-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@-1{{Instance variable 'ns_string' in 'AnotherObject' is 
a raw pointer to retainable type 'NSString'}}
+  // expected-warning@-1{{Instance variable 'ns_string' (of 'AnotherObject') 
is a raw pointer to RetainPtr capable type 'NSString'}}
   CFStringRef cf_string;
-  // expected-warning@-1{{Instance variable 'cf_string' in 'AnotherObject' is 
a retainable type 'CFStringRef'}}
+  // expected-warning@-1{{Instance variable 'cf_string' (of 'AnotherObject') 
is a RetainPtr capable type 'CFStringRef'}}
   dispatch_queue_t dispatch;
-  // expected-warning@-1{{Instance variable 'dispatch' in 'AnotherObject' is a 
retainable type 'dispatch_queue_t'}}
+  // expected-warning@-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@-1{{Instance variable 'ns_number' in 'DerivedObject' is 
a raw pointer to retainable type 'NSNumber'}}
+  // expected-warning@-1{{Instance variable 'ns_number' (of 'DerivedObject') 
is a raw pointer to RetainPtr capable type 'NSNumber'}}
   CGImageRef cg_image;
-  // expected-warning@-1{{Instance variable 'cg_image' in 'DerivedObject' is a 
retainable type 'CGImageRef'}}
+  // expected-warning@-1{{Instance variable 'cg_image' (of 'DerivedObject') is 
a RetainPtr capable type 'CGImageRef'}}
   dispatch_queue_t os_dispatch;
-  // expected-warning@-1{{Instance variable 'os_dispatch' in 'DerivedObject' 
is a retainable type 'dispatch_queue_t'}}
+  // expected-warning@-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@-1{{Property 'prop_string3' in 'DerivedObject2' is a raw 
pointer to retainable type 'NSString'}}
+// expected-warning@-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@-1{{Property 'prop_string5' in 'DerivedObject2' is a raw 
pointer to retainable type 'NSString'}}
+// expected-warning@-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@-1{{Instance variable 'ns_string' in 'NoSynthObject' is 
a raw pointer to retainable type 'NSString'}}
+  // expected-warning@-1{{Instance variable 'ns_string' (of 'NoSynthObject') 
is a raw pointer to RetainPtr capable type 'NSString'}}
   CFStringRef cf_string;
-  // expected-warning@-1{{Instance variable 'cf_string' in 'NoSynthObject' is 
a retainable type 'CFStringRef'}}
+  // expected-warning@-1{{Instance variable 'cf_string' (of 'NoSynthObject') 
is a RetainPtr capable type 'CFStringRef'}}
   dispatch_queue_t dispatch;
-  // expected-warning@-1{{Instance variable 'dispatch' in 'NoSynthObject' is a 
retainable type 'dispatch_queue_t'}}
+  // expected-warning@-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@-1{{Property 'prop_string3' in 'NoSynthObject' is a raw 
pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning@-1{{Property 'prop_string3' (of 'NoSynthObject') is a raw 
pointer to RetainPtr capable type 'NSString'}}
 @property(nonatomic, unsafe_unretained) NSString *prop_string4;
-// expected-warning@-1{{Property 'prop_string4' in 'NoSynthObject' is a raw 
pointer to retainable type 'NSString'; member variables must be a RetainPtr}}
+// expected-warning@-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

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to