[committed] libstdc++: Enable std::hash<coroutine_handle<P>> [PR107139]
Commit Message
Tested powerpc64le-linux, and x86_64-linux with -ffreestanding.
Pushed to trunk.
-- >8 --
Everything that <coroutine> depends on is available for freestanding
now.
libstdc++-v3/ChangeLog:
PR libstdc++/107139
* include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
conditionals.
---
libstdc++-v3/include/std/coroutine | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
@@ -39,7 +39,7 @@
# include <compare>
#endif
-#if !defined __cpp_lib_three_way_comparison && _GLIBCXX_HOSTED
+#if !defined __cpp_lib_three_way_comparison
# include <bits/stl_function.h> // for std::less
#endif
@@ -165,11 +165,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
constexpr bool
operator<(coroutine_handle<> __a, coroutine_handle<> __b) noexcept
{
-#if _GLIBCXX_HOSTED
return less<void*>()(__a.address(), __b.address());
-#else
- return (__UINTPTR_TYPE__)__a.address() < (__UINTPTR_TYPE__)__b.address();
-#endif
}
constexpr bool
@@ -343,7 +339,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} // namespace __n4861
-#if _GLIBCXX_HOSTED
template<typename _Tp> struct hash;
template<typename _Promise>
@@ -355,10 +350,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return reinterpret_cast<size_t>(__h.address());
}
};
-#endif
#else
-#error "the coroutine header requires -fcoroutines"
+#error "the <coroutine> header requires -fcoroutines"
#endif
_GLIBCXX_END_NAMESPACE_VERSION