forked from OSchip/llvm-project
[libc++] Remove _LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS
All supported compilers have implemented __has_unique_object_representations for a while, so it's reasonable to remove the workaround. Differential Revision: https://reviews.llvm.org/D107834
This commit is contained in:
parent
7be03cc782
commit
15071d2945
|
@ -510,10 +510,6 @@ typedef __char32_t char32_t;
|
|||
#define _LIBCPP_COMPILER_HAS_BUILTIN_CONSTANT_P
|
||||
#endif
|
||||
|
||||
#if !__is_identifier(__has_unique_object_representations)
|
||||
#define _LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS
|
||||
#endif
|
||||
|
||||
#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__always_inline__))
|
||||
|
||||
// Literal operators ""d and ""y are supported starting with LLVM Clang 8 and AppleClang 10.0.1
|
||||
|
@ -552,7 +548,6 @@ typedef __char32_t char32_t;
|
|||
#if _GNUC_VER >= 700
|
||||
#define _LIBCPP_COMPILER_HAS_BUILTIN_LAUNDER
|
||||
#define _LIBCPP_COMPILER_HAS_BUILTIN_CONSTANT_P
|
||||
#define _LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS
|
||||
#endif
|
||||
|
||||
#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__always_inline__))
|
||||
|
|
|
@ -1914,7 +1914,7 @@ _LIBCPP_INLINE_VAR _LIBCPP_CONSTEXPR bool has_virtual_destructor_v
|
|||
|
||||
// has_unique_object_representations
|
||||
|
||||
#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS)
|
||||
#if _LIBCPP_STD_VER > 14
|
||||
|
||||
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS has_unique_object_representations
|
||||
: public integral_constant<bool,
|
||||
|
|
|
@ -222,9 +222,7 @@ __cpp_lib_void_t 201411L <type_traits>
|
|||
# endif
|
||||
# define __cpp_lib_gcd_lcm 201606L
|
||||
// # define __cpp_lib_hardware_interference_size 201703L
|
||||
# if defined(_LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS)
|
||||
# define __cpp_lib_has_unique_object_representations 201606L
|
||||
# endif
|
||||
# define __cpp_lib_has_unique_object_representations 201606L
|
||||
# define __cpp_lib_hypot 201603L
|
||||
# define __cpp_lib_incomplete_container_elements 201505L
|
||||
# define __cpp_lib_invoke 201411L
|
||||
|
|
|
@ -233,17 +233,11 @@
|
|||
# error "__cpp_lib_bounded_array_traits should not be defined before c++20"
|
||||
# endif
|
||||
|
||||
# if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++17"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17"
|
||||
# endif
|
||||
# else
|
||||
# ifdef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
|
||||
# endif
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++17"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_integral_constant_callable
|
||||
|
@ -363,17 +357,11 @@
|
|||
# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++20"
|
||||
# endif
|
||||
|
||||
# if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++20"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20"
|
||||
# endif
|
||||
# else
|
||||
# ifdef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
|
||||
# endif
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++20"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_integral_constant_callable
|
||||
|
@ -520,17 +508,11 @@
|
|||
# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++2b"
|
||||
# endif
|
||||
|
||||
# if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++2b"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++2b"
|
||||
# endif
|
||||
# else
|
||||
# ifdef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
|
||||
# endif
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++2b"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++2b"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_integral_constant_callable
|
||||
|
|
|
@ -1600,17 +1600,11 @@
|
|||
# endif
|
||||
# endif
|
||||
|
||||
# if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++17"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17"
|
||||
# endif
|
||||
# else
|
||||
# ifdef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
|
||||
# endif
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++17"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_hypot
|
||||
|
@ -2613,17 +2607,11 @@
|
|||
# endif
|
||||
# endif
|
||||
|
||||
# if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++20"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20"
|
||||
# endif
|
||||
# else
|
||||
# ifdef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
|
||||
# endif
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++20"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_hypot
|
||||
|
@ -3782,17 +3770,11 @@
|
|||
# endif
|
||||
# endif
|
||||
|
||||
# if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++2b"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++2b"
|
||||
# endif
|
||||
# else
|
||||
# ifdef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
|
||||
# endif
|
||||
# ifndef __cpp_lib_has_unique_object_representations
|
||||
# error "__cpp_lib_has_unique_object_representations should be defined in c++2b"
|
||||
# endif
|
||||
# if __cpp_lib_has_unique_object_representations != 201606L
|
||||
# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++2b"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_hypot
|
||||
|
|
|
@ -323,8 +323,6 @@ feature_test_macros = [ add_version_header(x) for x in [
|
|||
"name": "__cpp_lib_has_unique_object_representations",
|
||||
"values": { "c++17": 201606 },
|
||||
"headers": ["type_traits"],
|
||||
"test_suite_guard": "TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700",
|
||||
"libcxx_guard": "defined(_LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS)",
|
||||
}, {
|
||||
"name": "__cpp_lib_hypot",
|
||||
"values": { "c++17": 201603 },
|
||||
|
|
Loading…
Reference in New Issue