https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105200
Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ppalka at gcc dot gnu.org --- Comment #4 from Patrick Palka <ppalka at gcc dot gnu.org> --- Reduced example exhibiting implementation divergence: enum class foo { a, b }; constexpr bool operator<=>(foo, foo) { return false; } static_assert(foo::a < foo::b); GCC selects the built-in operator< (thus the assert passes) whereas Clang/MSVC/ICC select the rewritten operator<=> (thus the assert fails).