diff options
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( |