================ @@ -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()) { ---------------- vbvictor wrote:
Are these cases FP too? `TypeRange(1)` may construct a different object from `TypeRange()` or I'm missing something. 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