================
@@ -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
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to