zhangxy988 created this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. zhangxy988 added a reviewer: alexfh.
Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D76029 Files: clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp clang-tools-extra/test/clang-tidy/checkers/bugprone-dangling-handle.cpp Index: clang-tools-extra/test/clang-tidy/checkers/bugprone-dangling-handle.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/bugprone-dangling-handle.cpp +++ clang-tools-extra/test/clang-tidy/checkers/bugprone-dangling-handle.cpp @@ -45,26 +45,30 @@ value_type& operator[](Key&& key); }; +template <typename _CharT> class basic_string_view; +template <typename _CharT> class basic_string { - public: +public: + typedef basic_string_view<_CharT> __self_view; basic_string(); basic_string(const char*); - operator basic_string_view() const noexcept; + operator __self_view() const noexcept; ~basic_string(); }; -typedef basic_string string; +typedef basic_string<char> string; +template <typename _CharT> class basic_string_view { - public: +public: basic_string_view(const char*); }; -typedef basic_string_view string_view; +typedef basic_string_view<char> string_view; } // namespace std Index: clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp +++ clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp @@ -27,7 +27,8 @@ return expr( anyOf(cxxConstructExpr(hasDeclaration(cxxMethodDecl(ofClass(IsAHandle))), hasArgument(0, Arg)), - cxxMemberCallExpr(hasType(cxxRecordDecl(IsAHandle)), + cxxMemberCallExpr(hasType(hasUnqualifiedDesugaredType(recordType( + hasDeclaration(cxxRecordDecl(IsAHandle))))), callee(memberExpr(member(cxxConversionDecl()))), on(Arg)))); }
Index: clang-tools-extra/test/clang-tidy/checkers/bugprone-dangling-handle.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/bugprone-dangling-handle.cpp +++ clang-tools-extra/test/clang-tidy/checkers/bugprone-dangling-handle.cpp @@ -45,26 +45,30 @@ value_type& operator[](Key&& key); }; +template <typename _CharT> class basic_string_view; +template <typename _CharT> class basic_string { - public: +public: + typedef basic_string_view<_CharT> __self_view; basic_string(); basic_string(const char*); - operator basic_string_view() const noexcept; + operator __self_view() const noexcept; ~basic_string(); }; -typedef basic_string string; +typedef basic_string<char> string; +template <typename _CharT> class basic_string_view { - public: +public: basic_string_view(const char*); }; -typedef basic_string_view string_view; +typedef basic_string_view<char> string_view; } // namespace std Index: clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp +++ clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp @@ -27,7 +27,8 @@ return expr( anyOf(cxxConstructExpr(hasDeclaration(cxxMethodDecl(ofClass(IsAHandle))), hasArgument(0, Arg)), - cxxMemberCallExpr(hasType(cxxRecordDecl(IsAHandle)), + cxxMemberCallExpr(hasType(hasUnqualifiedDesugaredType(recordType( + hasDeclaration(cxxRecordDecl(IsAHandle))))), callee(memberExpr(member(cxxConversionDecl()))), on(Arg)))); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits