[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