From cdcfcb733bfd2b8bfdfdd189d8117102ec1d2fd1 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 26 Jul 2019 14:36:56 +0100 Subject: [PATCH] Relocate std::endian from to This change to an early C++2a feature was just approved (P1612R1). Backport from mainline 2019-07-25 Jonathan Wakely * include/std/bit (endian): Move definition here as per P1612R1. * include/std/type_traits (endian): Remove definition from here. * testsuite/20_util/endian/1.cc: Rename to ... * testsuite/26_numerics/endian/1.cc: ... here. Adjust header. From-SVN: r273837 --- libstdc++-v3/ChangeLog | 10 ++++++++++ libstdc++-v3/include/std/bit | 7 +++++++ libstdc++-v3/include/std/type_traits | 8 -------- .../testsuite/{20_util => 26_numerics}/endian/1.cc | 2 +- 4 files changed, 18 insertions(+), 9 deletions(-) rename libstdc++-v3/testsuite/{20_util => 26_numerics}/endian/1.cc (98%) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4a2670240253..68490bff76c0 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,13 @@ +2019-07-26 Jonathan Wakely + + Backport from mainline + 2019-07-25 Jonathan Wakely + + * include/std/bit (endian): Move definition here as per P1612R1. + * include/std/type_traits (endian): Remove definition from here. + * testsuite/20_util/endian/1.cc: Rename to ... + * testsuite/26_numerics/endian/1.cc: ... here. Adjust header. + 2019-07-26 Jonathan Wakely Backport from mainline diff --git a/libstdc++-v3/include/std/bit b/libstdc++-v3/include/std/bit index 417aa4a88d79..4331255f157d 100644 --- a/libstdc++-v3/include/std/bit +++ b/libstdc++-v3/include/std/bit @@ -325,6 +325,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION log2p1(_Tp __x) noexcept { return std::__log2p1(__x); } + /// Byte order + enum class endian + { + little = __ORDER_LITTLE_ENDIAN__, + big = __ORDER_BIG_ENDIAN__, + native = __BYTE_ORDER__ + }; #endif // C++2a _GLIBCXX_END_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index cc9cb2467a96..440813dcf764 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -2992,14 +2992,6 @@ template #endif // C++17 #if __cplusplus > 201703L - /// Byte order - enum class endian - { - little = __ORDER_LITTLE_ENDIAN__, - big = __ORDER_BIG_ENDIAN__, - native = __BYTE_ORDER__ - }; - /// Remove references and cv-qualifiers. template struct remove_cvref diff --git a/libstdc++-v3/testsuite/20_util/endian/1.cc b/libstdc++-v3/testsuite/26_numerics/endian/1.cc similarity index 98% rename from libstdc++-v3/testsuite/20_util/endian/1.cc rename to libstdc++-v3/testsuite/26_numerics/endian/1.cc index 4faaba8e541e..896a14c5a6c4 100644 --- a/libstdc++-v3/testsuite/20_util/endian/1.cc +++ b/libstdc++-v3/testsuite/26_numerics/endian/1.cc @@ -18,7 +18,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } -#include +#include static_assert( std::is_enum_v ); static_assert( std::endian::little != std::endian::big ); -- 2.47.2