https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109383

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
--- a/libstdc++-v3/include/std/typeindex
+++ b/libstdc++-v3/include/std/typeindex
@@ -87,13 +87,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     strong_ordering
     operator<=>(const type_index& __rhs) const noexcept
     {
+#if __GXX_TYPEINFO_EQUALITY_INLINE
+# if __GXX_MERGED_TYPEINFO_NAMES
+      return _M_target->name() <=> __rhs._M_target->name();
+# else
+      return __builtin_strcmp(_M_target->name(), __rhs._M_target->name()) <=>
0;
+# endif
+#else // __GXX_TYPEINFO_EQUALITY_INLINE
       if (*_M_target == *__rhs._M_target)
        return strong_ordering::equal;
       if (_M_target->before(*__rhs._M_target))
        return strong_ordering::less;
       return strong_ordering::greater;
+#endif // __GXX_TYPEINFO_EQUALITY_INLINE
     }
-#endif
+#endif // __cpp_lib_three_way_comparison

     size_t
     hash_code() const noexcept

Reply via email to