llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-tidy @llvm/pr-subscribers-clang-tools-extra Author: None (flovent) <details> <summary>Changes</summary> Closes #<!-- -->154762 --- Full diff: https://github.com/llvm/llvm-project/pull/154782.diff 3 Files Affected: - (modified) clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp (+1-1) - (modified) clang-tools-extra/docs/ReleaseNotes.rst (+2-1) - (modified) clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp (+24) ``````````diff diff --git a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp index c4dc319f23c38..c5df94dae50b1 100644 --- a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp @@ -190,7 +190,7 @@ void ContainerSizeEmptyCheck::registerMatchers(MatchFinder *Finder) { const auto WrongComparend = anyOf(stringLiteral(hasSize(0)), userDefinedLiteral(hasLiteral(stringLiteral(hasSize(0)))), - cxxConstructExpr(isDefaultConstruction()), + cxxConstructExpr(isDefaultConstruction(), argumentCountIs(0)), cxxUnresolvedConstructExpr(argumentCountIs(0))); // Match the object being compared. const auto STLArg = diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 388979d9577ba..adf1c039916ff 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -211,7 +211,8 @@ Changes in existing checks - Improved :doc:`readability-container-size-empty <clang-tidy/checks/readability/container-size-empty>` check by correctly - generating fix-it hints when size method is called from implicit ``this``. + generating fix-it hints when size method is called from implicit ``this`` + and ignoring default constructors with user provided arguments. - Improved :doc:`readability-identifier-naming <clang-tidy/checks/readability/identifier-naming>` check by ignoring diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp b/clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp index b1e68672a3a9a..48a3ca1726f39 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/readability/container-size-empty.cpp @@ -908,3 +908,27 @@ class foo : public std::string{ }; } + +namespace GH154762 { +class TypeRange { + std::vector<int> b; + +public: + TypeRange(std::vector<int> b = {}); + TypeRange(int); + bool operator==(const TypeRange& other) const; + + size_t size() const { + return b.size(); + } + + bool empty() const { + return size() == 0; + } +}; + +void foo(std::vector<int> v) { + if (TypeRange(1) == TypeRange(v)) { // no warning + } +} +} `````````` </details> https://github.com/llvm/llvm-project/pull/154782 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits