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(-)

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
-- 
2.37.3

Reply via email to