1 // RUN: %check_clang_tidy -std=c++20 %s readability-implicit-bool-conversion %t
2 
3 namespace std {
4 struct strong_ordering {
5   int n;
operator intstd::strong_ordering6   constexpr operator int() const { return n; }
7   static const strong_ordering equal, greater, less;
8 };
9 constexpr strong_ordering strong_ordering::equal = {0};
10 constexpr strong_ordering strong_ordering::greater = {1};
11 constexpr strong_ordering strong_ordering::less = {-1};
12 } // namespace std
13 
14 namespace PR93409 {
15   struct X
16   {
17       auto operator<=>(const X&) const = default;
18       bool m_b;
19   };
20 
21   struct Y
22   {
23       auto operator<=>(const Y&) const = default;
24       X m_x;
25   };
26 
compare(const Y & y1,const Y & y2)27   bool compare(const Y& y1, const Y& y2)
28   {
29      return y1 == y2 || y1 < y2 || y1 > y2;
30   }
31 }
32