summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp
diff options
context:
space:
mode:
authorSamuel Benzaquen <sbenza@google.com>2018-01-08 15:59:08 +0000
committerSamuel Benzaquen <sbenza@google.com>2018-01-08 15:59:08 +0000
commit1092ceae556bf36c3691d2d476f62711157f5257 (patch)
tree8c4174c9754cf75e409371f2bb363876199677c9 /clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp
parent718397632e52950ce18b437fb2a8c8fd240918fc (diff)
downloadbcm5719-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.cpp8
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(
OpenPOWER on IntegriCloud