dewen added inline comments.

================
Comment at: clang/test/CXX/class.derived/class.member.lookup/p11.cpp:15
+struct D: I1, I2, B2 {
+  using B1::f;
+  using B2::f;
----------------
```
bool correctness{true};
struct A {
    bool operator==(A const&oth) const {
        return true;
    }
};

struct B {
    bool operator==(B const&oth) const {
        return false;
    }
};

struct C {
    bool operator==(C const&oth) const {
        correctness=false;
        return false;
    }
};

typedef std::tuple<A,B,C> tuple_t ;

int test_it (void) {
    tuple_t x,y;
    return ( !(x==y) ) && correctness ;
}
```
This test case does not report an error in GCC11 and later versions. The tuple 
class overloads the operator==() method. Different structs also overload the 
operator==() method. Due to the introduction of the patch, the llvm18 reports 
an error when compiling the test case. Is this reasonable?




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D155387/new/

https://reviews.llvm.org/D155387

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to