[committed] libstdc++: Enable std::hash<coroutine_handle<P>> [PR107139]

Message ID 20221004141138.530214-3-jwakely@redhat.com
State New, archived
Headers
Series [committed] libstdc++: Enable std::hash<coroutine_handle<P>> [PR107139] |

Commit Message

Jonathan Wakely Oct. 4, 2022, 2:11 p.m. UTC
  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(-)
  

Patch

diff --git a/libstdc++-v3/include/std/coroutine b/libstdc++-v3/include/std/coroutine
index f4189c7e3fc..ebaf11d701f 100644
--- a/libstdc++-v3/include/std/coroutine
+++ b/libstdc++-v3/include/std/coroutine
@@ -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