brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 0299519 Raw
62 lines · cpp
1// RUN: %check_clang_tidy %s readability-redundant-string-init %t2 3namespace std {4template <typename T>5class allocator {};6template <typename T>7class char_traits {};8template <typename C, typename T = std::char_traits<C>, typename A = std::allocator<C>>9struct basic_string {10  basic_string();11  basic_string(const basic_string&);12  // MSVC headers define two constructors instead of using optional arguments.13  basic_string(const C *);14  basic_string(const C *, const A &);15  ~basic_string();16};17typedef basic_string<char> string;18typedef basic_string<wchar_t> wstring;19}20 21void f() {22  std::string a = "";23  // CHECK-MESSAGES: [[@LINE-1]]:15: warning: redundant string initialization [readability-redundant-string-init]24  // CHECK-FIXES: std::string a;25  std::string b("");26  // CHECK-MESSAGES: [[@LINE-1]]:15: warning: redundant string initialization27  // CHECK-FIXES: std::string b;28  std::string c = R"()";29  // CHECK-MESSAGES: [[@LINE-1]]:15: warning: redundant string initialization30  // CHECK-FIXES: std::string c;31  std::string d(R"()");32  // CHECK-MESSAGES: [[@LINE-1]]:15: warning: redundant string initialization33  // CHECK-FIXES: std::string d;34 35  std::string u = "u";36  std::string w("w");37  std::string x = R"(x)";38  std::string y(R"(y)");39  std::string z;40}41 42void g() {43  std::wstring a = L"";44  // CHECK-MESSAGES: [[@LINE-1]]:16: warning: redundant string initialization45  // CHECK-FIXES: std::wstring a;46  std::wstring b(L"");47  // CHECK-MESSAGES: [[@LINE-1]]:16: warning: redundant string initialization48  // CHECK-FIXES: std::wstring b;49  std::wstring c = LR"()";50  // CHECK-MESSAGES: [[@LINE-1]]:16: warning: redundant string initialization51  // CHECK-FIXES: std::wstring c;52  std::wstring d(LR"()");53  // CHECK-MESSAGES: [[@LINE-1]]:16: warning: redundant string initialization54  // CHECK-FIXES: std::wstring d;55 56  std::wstring u = L"u";57  std::wstring w(L"w");58  std::wstring x = LR"(x)";59  std::wstring y(LR"(y)");60  std::wstring z;61}62