From 45c7215c1e17de75ea1abce59c3927f3f83d4b24 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 25 Jul 2019 21:30:25 +0100 Subject: [PATCH] Relocate std::endian from to This change to an early C++2a feature was just approved (P1612R1). * 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: r273816 --- libstdc++-v3/ChangeLog | 7 +++++++ 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, 15 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 a92e7a7783b..21f352a10b6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +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-25 Martin Liska Dominik Infuhr diff --git a/libstdc++-v3/include/std/bit b/libstdc++-v3/include/std/bit index f17d2f1bd59..d57433c093a 100644 --- a/libstdc++-v3/include/std/bit +++ b/libstdc++-v3/include/std/bit @@ -315,6 +315,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 d8ed1ce120d..9428dadc9d7 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -3226,14 +3226,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 4faaba8e541..896a14c5a6c 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.30.2