Define __cpp_lib_endian feature test macro
This macro was added as part of moving std::endian from <type_traits> to <bit>. * include/std/bit (__cpp_lib_endian): Define. * include/std/version (__cpp_lib_endian): Define. * testsuite/26_numerics/endian/2.cc: New. * testsuite/26_numerics/endian/3.cc: New. * testsuite/26_numerics/endian/4.cc: New. From-SVN: r273828
This commit is contained in:
parent
3644cadf6a
commit
a5378f9b60
|
@ -1,3 +1,11 @@
|
|||
2019-07-26 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
* include/std/bit (__cpp_lib_endian): Define.
|
||||
* include/std/version (__cpp_lib_endian): Define.
|
||||
* testsuite/26_numerics/endian/2.cc: New.
|
||||
* testsuite/26_numerics/endian/3.cc: New.
|
||||
* testsuite/26_numerics/endian/4.cc: New.
|
||||
|
||||
2019-07-26 François Dumont <fdumont@gcc.gnu.org>
|
||||
|
||||
* testsuite/util/testsuite_iterators.h
|
||||
|
|
|
@ -315,6 +315,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
log2p1(_Tp __x) noexcept
|
||||
{ return std::__log2p1(__x); }
|
||||
|
||||
#define __cpp_lib_endian 201907L
|
||||
|
||||
/// Byte order
|
||||
enum class endian
|
||||
{
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
#if __cpp_impl_destroying_delete
|
||||
# define __cpp_lib_destroying_delete 201806L
|
||||
#endif
|
||||
#define __cpp_lib_endian 201907L
|
||||
#define __cpp_lib_erase_if 201900L
|
||||
#define __cpp_lib_interpolate 201902L
|
||||
#ifdef _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
// Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING3. If not see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
// { dg-options "-std=gnu++2a" }
|
||||
// { dg-do compile { target c++2a } }
|
||||
|
||||
#include <bit>
|
||||
|
||||
#ifndef __cpp_lib_endian
|
||||
# error "Feature-test macro for endian missing in <bit>"
|
||||
#elif __cpp_lib_endian != 201907L
|
||||
# error "Feature-test macro for endian has wrong value in <bit>"
|
||||
#endif
|
|
@ -0,0 +1,27 @@
|
|||
// Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING3. If not see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
// { dg-options "-std=gnu++2a" }
|
||||
// { dg-do compile { target c++2a } }
|
||||
|
||||
#include <version>
|
||||
|
||||
#ifndef __cpp_lib_endian
|
||||
# error "Feature-test macro for endian missing in <version>"
|
||||
#elif __cpp_lib_endian != 201907L
|
||||
# error "Feature-test macro for endian has wrong value in <version>"
|
||||
#endif
|
|
@ -0,0 +1,25 @@
|
|||
// Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING3. If not see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
// { dg-do compile { target c++17_down } }
|
||||
|
||||
#include <bit>
|
||||
#include <version>
|
||||
|
||||
#ifdef __cpp_lib_endian
|
||||
# error "Feature-test macro for endian defined before C++20"
|
||||
#endif
|
Loading…
Reference in New Issue