================ @@ -1126,9 +1126,6 @@ class QualType { /// Return true if this is a trivially relocatable type. bool isTriviallyRelocatableType(const ASTContext &Context) const; - /// Return true if this is a trivially equality comparable type. - bool isTriviallyEqualityComparableType(const ASTContext &Context) const; ---------------- philnik777 wrote:
The main problem with this is that you don't have to have a member. Take this test case for example: ```c++ struct NotTriviallyEqualityComparableMoreConstrainedExternalOp { int i; bool operator==(const NotTriviallyEqualityComparableMoreConstrainedExternalOp&) const = default; }; bool operator==(const NotTriviallyEqualityComparableMoreConstrainedExternalOp&, const NotTriviallyEqualityComparableMoreConstrainedExternalOp&) __attribute__((enable_if(true, ""))) {} static_assert(!__is_trivially_equality_comparable(NotTriviallyEqualityComparableMoreConstrainedExternalOp)); ``` I'm sure this can also be written with some `requires` clause. Without the builtin telling the library there is no way to figure out that a free function instead of the member is called. https://github.com/llvm/llvm-project/pull/93113 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits