[clang-tools-extra] [clang-tidy] Speed up/rewrite `bugprone-stringview-nullptr` (PR #192889)

Victor Chernyakin via cfe-commits cfe-commits at lists.llvm.org
Sun Apr 19 21:33:07 PDT 2026


================
@@ -1328,295 +1328,217 @@ void pointer_greater_comparison(std::string_view *sv_ptr) /* l */ {
   // Without Equality
   {
     (void)(*sv_ptr > nullptr) /* l1 */;
-    // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: comparing{{.*}}empty string
+    // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: constructing
     // CHECK-FIXES: (void)(*sv_ptr > "") /* l1 */;
 
     (void)(*sv_ptr > (nullptr)) /* l2 */;
-    // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: comparing{{.*}}empty string
+    // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: constructing
     // CHECK-FIXES: (void)(*sv_ptr > "") /* l2 */;
 
     (void)(nullptr > *sv_ptr) /* l3 */;
-    // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: comparing{{.*}}empty string
+    // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: constructing
     // CHECK-FIXES: (void)("" > *sv_ptr) /* l3 */;
 
     (void)((nullptr) > *sv_ptr) /* l4 */;
-    // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: comparing{{.*}}empty string
+    // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: constructing
     // CHECK-FIXES: (void)("" > *sv_ptr) /* l4 */;
   }
 
   // With Equality
   {
     (void)(*sv_ptr >= nullptr) /* l5 */;
-    // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: comparing{{.*}}empty string
+    // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: constructing
     // CHECK-FIXES: (void)(*sv_ptr >= "") /* l5 */;
 
     (void)(*sv_ptr >= (nullptr)) /* l6 */;
-    // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: comparing{{.*}}empty string
+    // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: constructing
     // CHECK-FIXES: (void)(*sv_ptr >= "") /* l6 */;
 
     (void)(nullptr >= *sv_ptr) /* l7 */;
-    // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: comparing{{.*}}empty string
+    // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: constructing
     // CHECK-FIXES: (void)("" >= *sv_ptr) /* l7 */;
 
     (void)((nullptr) >= *sv_ptr) /* l8 */;
-    // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: comparing{{.*}}empty string
+    // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: constructing
     // CHECK-FIXES: (void)("" >= *sv_ptr) /* l8 */;
   }
 }
 
 void relative_comparison_with_temporary(std::string_view sv) /* m */ {
   (void)(sv < std::string_view(nullptr)) /* m1 */;
-  // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: constructing{{.*}}default
+  // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: constructing
   // CHECK-FIXES: (void)(sv < std::string_view()) /* m1 */;
 
   (void)(sv < std::string_view{nullptr}) /* m2 */;
-  // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: constructing{{.*}}default
+  // CHECK-MESSAGES: :[[@LINE-1]]:32: warning: constructing
   // CHECK-FIXES: (void)(sv < std::string_view{}) /* m2 */;
 
   (void)(sv < (std::string_view) nullptr) /* m3 */;
-  // CHECK-MESSAGES: :[[@LINE-1]]:34: warning: constructing{{.*}}default
+  // CHECK-MESSAGES: :[[@LINE-1]]:34: warning: constructing
   // CHECK-FIXES: (void)(sv < (std::string_view) {}) /* m3 */;
 
   (void)(sv < (std::string_view){nullptr}) /* m4 */;
-  // CHECK-MESSAGES: :[[@LINE-1]]:34: warning: constructing{{.*}}default
+  // CHECK-MESSAGES: :[[@LINE-1]]:34: warning: constructing
   // CHECK-FIXES: (void)(sv < (std::string_view){}) /* m4 */;
 
   (void)(sv < static_cast<SV>(nullptr)) /* m5 */;
-  // CHECK-MESSAGES: :[[@LINE-1]]:31: warning: casting{{.*}}empty string
+  // CHECK-MESSAGES: :[[@LINE-1]]:31: warning: constructing
   // CHECK-FIXES: (void)(sv < static_cast<SV>("")) /* m5 */;
 }
 
 void equality_comparison(std::string_view sv) /* n */ {
   // Empty Without Parens
   {
     (void)(sv == nullptr) /* n1 */;
-    // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: comparing basic_string_view to null is undefined; replace with the emptiness query
-    // CHECK-FIXES: (void)(sv.empty()) /* n1 */;
+    // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: constructing
+    // CHECK-FIXES: (void)(sv == "") /* n1 */;
----------------
localspook wrote:

Second nontrivial change

https://github.com/llvm/llvm-project/pull/192889


More information about the cfe-commits mailing list