diff options
author | Samuel Benzaquen <sbenza@google.com> | 2018-01-08 15:59:08 +0000 |
---|---|---|
committer | Samuel Benzaquen <sbenza@google.com> | 2018-01-08 15:59:08 +0000 |
commit | 1092ceae556bf36c3691d2d476f62711157f5257 (patch) | |
tree | 8c4174c9754cf75e409371f2bb363876199677c9 /clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp | |
parent | 718397632e52950ce18b437fb2a8c8fd240918fc (diff) | |
download | bcm5719-llvm-1092ceae556bf36c3691d2d476f62711157f5257.tar.gz bcm5719-llvm-1092ceae556bf36c3691d2d476f62711157f5257.zip |
[clang-tidy] Fix DanglingHandleCheck for the correct conversion operation between basic_string and basic_string_view.
Summary:
Fix DanglingHandleCheck to handle the final implementation of std::string and std::string_view.
These use a conversion operator instead of a conversion constructor.
Reviewers: hokein
Subscribers: klimek, xazax.hun, cfe-commits
Differential Revision: https://reviews.llvm.org/D41779
llvm-svn: 322002
Diffstat (limited to 'clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp index 5388684ad36..a22dcad6581 100644 --- a/clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp @@ -25,8 +25,12 @@ namespace { ast_matchers::internal::BindableMatcher<Stmt> handleFrom(const ast_matchers::internal::Matcher<RecordDecl> &IsAHandle, const ast_matchers::internal::Matcher<Expr> &Arg) { - return cxxConstructExpr(hasDeclaration(cxxMethodDecl(ofClass(IsAHandle))), - hasArgument(0, Arg)); + return expr( + anyOf(cxxConstructExpr(hasDeclaration(cxxMethodDecl(ofClass(IsAHandle))), + hasArgument(0, Arg)), + cxxMemberCallExpr(hasType(cxxRecordDecl(IsAHandle)), + callee(memberExpr(member(cxxConversionDecl()))), + on(Arg)))); } ast_matchers::internal::Matcher<Stmt> handleFromTemporaryValue( |