diff --git a/clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/string b/clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/string new file mode 100644 --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/checkers/Inputs/Headers/string @@ -0,0 +1,74 @@ +#ifndef _STRING_ +#define _STRING_ + +// For size_t +#include + +typedef unsigned __INT16_TYPE__ char16; +typedef unsigned __INT32_TYPE__ char32; + +namespace std { +template +class allocator {}; +template +class char_traits {}; +template +struct basic_string { + typedef size_t size_type; + typedef basic_string _Type; + basic_string(); + basic_string(const C *p, const A &a = A()); + + ~basic_string(); + + const C *c_str() const; + const C *data() const; + + _Type& append(const C *s); + _Type& append(const C *s, size_type n); + _Type& assign(const C *s); + _Type& assign(const C *s, size_type n); + + int compare(const _Type&) const; + int compare(const C* s) const; + int compare(size_type pos, size_type len, const _Type&) const; + int compare(size_type pos, size_type len, const C* s) const; + + size_type find(const _Type& str, size_type pos = 0) const; + size_type find(const C* s, size_type pos = 0) const; + size_type find(const C* s, size_type pos, size_type n) const; + + _Type& insert(size_type pos, const _Type& str); + _Type& insert(size_type pos, const C* s); + _Type& insert(size_type pos, const C* s, size_type n); + + _Type& operator+=(const _Type& str); + _Type& operator+=(const C* s); + _Type& operator=(const _Type& str); + _Type& operator=(const C* s); +}; + +typedef basic_string, std::allocator> string; +typedef basic_string, std::allocator> wstring; +typedef basic_string, std::allocator> u16string; +typedef basic_string, std::allocator> u32string; + +template +struct basic_string_view { + basic_string_view(const C* s); +}; +typedef basic_string_view> string_view; +typedef basic_string_view> wstring_view; +typedef basic_string_view> u16string_view; +typedef basic_string_view> u32string_view; + +std::string operator+(const std::string&, const std::string&); +std::string operator+(const std::string&, const char*); +std::string operator+(const char*, const std::string&); + +bool operator==(const std::string&, const std::string&); +bool operator==(const std::string&, const char*); +bool operator==(const char*, const std::string&); +} + +#endif // _STRING_ diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-cstr.cpp b/clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-cstr.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-cstr.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/readability/redundant-string-cstr.cpp @@ -1,71 +1,5 @@ -// RUN: %check_clang_tidy %s readability-redundant-string-cstr %t - -typedef unsigned __INT16_TYPE__ char16; -typedef unsigned __INT32_TYPE__ char32; -typedef __SIZE_TYPE__ size; - -namespace std { -template -class allocator {}; -template -class char_traits {}; -template -struct basic_string { - typedef basic_string _Type; - basic_string(); - basic_string(const C *p, const A &a = A()); - - ~basic_string(); - - const C *c_str() const; - const C *data() const; - - _Type& append(const C *s); - _Type& append(const C *s, size n); - _Type& assign(const C *s); - _Type& assign(const C *s, size n); - - int compare(const _Type&) const; - int compare(const C* s) const; - int compare(size pos, size len, const _Type&) const; - int compare(size pos, size len, const C* s) const; - - size find(const _Type& str, size pos = 0) const; - size find(const C* s, size pos = 0) const; - size find(const C* s, size pos, size n) const; - - _Type& insert(size pos, const _Type& str); - _Type& insert(size pos, const C* s); - _Type& insert(size pos, const C* s, size n); - - _Type& operator+=(const _Type& str); - _Type& operator+=(const C* s); - _Type& operator=(const _Type& str); - _Type& operator=(const C* s); -}; - -typedef basic_string, std::allocator> string; -typedef basic_string, std::allocator> wstring; -typedef basic_string, std::allocator> u16string; -typedef basic_string, std::allocator> u32string; - -template -struct basic_string_view { - basic_string_view(const C* s); -}; -typedef basic_string_view> string_view; -typedef basic_string_view> wstring_view; -typedef basic_string_view> u16string_view; -typedef basic_string_view> u32string_view; -} - -std::string operator+(const std::string&, const std::string&); -std::string operator+(const std::string&, const char*); -std::string operator+(const char*, const std::string&); - -bool operator==(const std::string&, const std::string&); -bool operator==(const std::string&, const char*); -bool operator==(const char*, const std::string&); +// RUN: %check_clang_tidy %s readability-redundant-string-cstr %t -- -- -isystem %clang_tidy_headers +#include namespace llvm { struct StringRef {