forked from OSchip/llvm-project
62 lines
1.9 KiB
C++
62 lines
1.9 KiB
C++
// RUN: %check_clang_tidy %s readability-redundant-string-init %t
|
|
|
|
namespace std {
|
|
template <typename T>
|
|
class allocator {};
|
|
template <typename T>
|
|
class char_traits {};
|
|
template <typename C, typename T = std::char_traits<C>, typename A = std::allocator<C>>
|
|
struct basic_string {
|
|
basic_string();
|
|
basic_string(const basic_string&);
|
|
// MSVC headers define two constructors instead of using optional arguments.
|
|
basic_string(const C *);
|
|
basic_string(const C *, const A &);
|
|
~basic_string();
|
|
};
|
|
typedef basic_string<char> string;
|
|
typedef basic_string<wchar_t> wstring;
|
|
}
|
|
|
|
void f() {
|
|
std::string a = "";
|
|
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: redundant string initialization [readability-redundant-string-init]
|
|
// CHECK-FIXES: std::string a;
|
|
std::string b("");
|
|
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: redundant string initialization
|
|
// CHECK-FIXES: std::string b;
|
|
std::string c = R"()";
|
|
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: redundant string initialization
|
|
// CHECK-FIXES: std::string c;
|
|
std::string d(R"()");
|
|
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: redundant string initialization
|
|
// CHECK-FIXES: std::string d;
|
|
|
|
std::string u = "u";
|
|
std::string w("w");
|
|
std::string x = R"(x)";
|
|
std::string y(R"(y)");
|
|
std::string z;
|
|
}
|
|
|
|
void g() {
|
|
std::wstring a = L"";
|
|
// CHECK-MESSAGES: [[@LINE-1]]:16: warning: redundant string initialization
|
|
// CHECK-FIXES: std::wstring a;
|
|
std::wstring b(L"");
|
|
// CHECK-MESSAGES: [[@LINE-1]]:16: warning: redundant string initialization
|
|
// CHECK-FIXES: std::wstring b;
|
|
std::wstring c = LR"()";
|
|
// CHECK-MESSAGES: [[@LINE-1]]:16: warning: redundant string initialization
|
|
// CHECK-FIXES: std::wstring c;
|
|
std::wstring d(LR"()");
|
|
// CHECK-MESSAGES: [[@LINE-1]]:16: warning: redundant string initialization
|
|
// CHECK-FIXES: std::wstring d;
|
|
|
|
std::wstring u = L"u";
|
|
std::wstring w(L"w");
|
|
std::wstring x = LR"(x)";
|
|
std::wstring y(LR"(y)");
|
|
std::wstring z;
|
|
}
|