diff options
author | Tamas Berghammer <tamas@hudson-trading.com> | 2023-01-02 06:24:00 -0500 |
---|---|---|
committer | Tamas Berghammer <tamas@hudson-trading.com> | 2023-01-02 06:24:00 -0500 |
commit | f325b5b8cb1d6c16dd04c88380caea7b0a7750eb (patch) | |
tree | 3533aef79d779c9858c768f6c8eb326c3ca6e02c /clang-tools-extra/clang-tidy/readability | |
parent | [mlir][llvm] Make the import of LLVM IR intrinsics extensible. (diff) | |
download | llvm-project-f325b5b8cb1d6c16dd04c88380caea7b0a7750eb.tar.gz llvm-project-f325b5b8cb1d6c16dd04c88380caea7b0a7750eb.tar.bz2 llvm-project-f325b5b8cb1d6c16dd04c88380caea7b0a7750eb.zip |
[clang-tidy] Support std::string_view in readability-redundant-string-cstr
Previously we were matching constructor calls for std::string and
llvm::StringRef and this change extends this set with including
std::string_view as well.
Reviewed By: njames93, carlosgalvezp
Differential Revision: https://reviews.llvm.org/D140018
Diffstat (limited to 'clang-tools-extra/clang-tidy/readability')
-rw-r--r-- | clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp index 79211731ff7b..9ecd6d612e0c 100644 --- a/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp @@ -86,6 +86,11 @@ void RedundantStringCStrCheck::registerMatchers( // be present explicitly. hasArgument(1, cxxDefaultArgExpr())))); + // Match string constructor. + const auto StringViewConstructorExpr = cxxConstructExpr( + argumentCountIs(1), + hasDeclaration(cxxMethodDecl(hasName("basic_string_view")))); + // Match a call to the string 'c_str()' method. const auto StringCStrCallExpr = cxxMemberCallExpr(on(StringExpr.bind("arg")), @@ -101,7 +106,8 @@ void RedundantStringCStrCheck::registerMatchers( traverse( TK_AsIs, cxxConstructExpr( - StringConstructorExpr, hasArgument(0, StringCStrCallExpr), + anyOf(StringConstructorExpr, StringViewConstructorExpr), + hasArgument(0, StringCStrCallExpr), unless(anyOf(HasRValueTempParent, hasParent(cxxBindTemporaryExpr( HasRValueTempParent)))))), this); |