================
@@ -0,0 +1,45 @@
+// RUN: %check_clang_tidy -std=c++17 %s
bugprone-redundant-string-view-conversions %t -- \
+// RUN: -- -isystem %clang_tidy_headers
+
+#include <string>
+
+void foo1(int p1, std::string_view p2, double p3);
+void foo2(int p1, std::wstring_view p2, double p3);
+void foo3(int p1, const std::string& p2, double p3);
+
+void bar_positive(std::string_view sv, std::wstring_view wsv) {
+ // string(string_view)
+ //
+ foo1(42, std::string(sv), 3.14);
+ // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: redundant conversion to
std::string and then back to std::string_view
[bugprone-redundant-string-view-conversions]
+ // CHECK-FIXES: foo1(42, sv, 3.14);
+
+ foo1(42, std::string("hello, world"), 3.14);
+ // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: redundant conversion to
std::string and then back to std::string_view
[bugprone-redundant-string-view-conversions]
+ // CHECK-FIXES: foo1(42, "hello, world", 3.14);
+
+ const char *ptr = "Hello, world";
+ foo1(42, std::string(ptr), 3.14);
+ // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: redundant conversion to
std::string and then back to std::string_view
[bugprone-redundant-string-view-conversions]
+ // CHECK-FIXES: foo1(42, ptr, 3.14);
+
+ // wstring(wstring_view)
+ //
+ foo2(42, std::wstring(wsv), 3.14);
+ // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: redundant conversion to
std::wstring and then back to std::wstring_view
[bugprone-redundant-string-view-conversions]
+ // CHECK-FIXES: foo2(42, wsv, 3.14);
+
+ const wchar_t *wptr = L"Hello, world";
+ foo2(42, std::wstring(wptr), 3.14);
+ // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: redundant conversion to
std::wstring and then back to std::wstring_view
[bugprone-redundant-string-view-conversions]
+ // CHECK-FIXES: foo2(42, wptr, 3.14);
+}
+
+void bar_negaitve(std::string_view sv, std::wstring_view wsv) {
----------------
zeyi2 wrote:
typo?
https://github.com/llvm/llvm-project/pull/174288
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits