[clang-tools-extra] [clang-tidy] Ignore default ctor with user provided argument in `readability-container-size-empty` (PR #154782)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Aug 23 06:43:42 PDT 2025
================
@@ -908,3 +908,37 @@ 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
+ }
+
+ if (TypeRange(1) == TypeRange()) {
----------------
flovent wrote:
This check can not, it will need more code and logic which it's may not easy to implement because we will need to analyze `size()` and ctor to know how we get this container's size, did default ctor leaves this container empty.
Unless we limit this kind of check to container we already know like STL, otherwise FP will indeed occur.
https://github.com/llvm/llvm-project/pull/154782
More information about the cfe-commits
mailing list