forked from OSchip/llvm-project
[libcxx] Remove _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED
All supported compilers should support _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED so this can be removed. Reviewed By: ldionne, #libc, Quuxplusone Differential Revision: https://reviews.llvm.org/D107239
This commit is contained in:
parent
ca58d9af73
commit
1123100a16
|
@ -1292,10 +1292,6 @@ extern "C" _LIBCPP_FUNC_VIS void __sanitizer_annotate_contiguous_container(
|
|||
#define _LIBCPP_HAS_NO_BUILTIN_ADDRESSOF
|
||||
#endif
|
||||
|
||||
#if !__has_builtin(__builtin_is_constant_evaluated) && _GNUC_VER < 900
|
||||
#define _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED
|
||||
#endif
|
||||
|
||||
#if __has_attribute(diagnose_if) && !defined(_LIBCPP_DISABLE_ADDITIONAL_DIAGNOSTICS)
|
||||
# define _LIBCPP_DIAGNOSE_WARNING(...) \
|
||||
__attribute__((diagnose_if(__VA_ARGS__, "warning")))
|
||||
|
|
|
@ -29,8 +29,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
|||
// If the compiler has no concepts support, the format header will be disabled.
|
||||
// Without concepts support enable_if needs to be used and that too much effort
|
||||
// to support compilers with partial C++20 support.
|
||||
#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && \
|
||||
!defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
|
||||
#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
|
||||
|
||||
template <class _CharT>
|
||||
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FORMAT basic_format_parse_context {
|
||||
|
@ -102,7 +101,7 @@ private:
|
|||
using format_parse_context = basic_format_parse_context<char>;
|
||||
using wformat_parse_context = basic_format_parse_context<wchar_t>;
|
||||
|
||||
#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
|
||||
#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
|
||||
|
||||
#endif //_LIBCPP_STD_VER > 17
|
||||
|
||||
|
|
|
@ -4453,7 +4453,6 @@ template <class _ValTy, class _Key, class _RawValTy>
|
|||
struct __can_extract_map_key<_ValTy, _Key, _Key, _RawValTy>
|
||||
: false_type {};
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED
|
||||
#if _LIBCPP_STD_VER > 17
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
inline constexpr bool is_constant_evaluated() noexcept {
|
||||
|
@ -4463,10 +4462,6 @@ inline constexpr bool is_constant_evaluated() noexcept {
|
|||
|
||||
inline _LIBCPP_CONSTEXPR
|
||||
bool __libcpp_is_constant_evaluated() _NOEXCEPT { return __builtin_is_constant_evaluated(); }
|
||||
#else
|
||||
inline _LIBCPP_CONSTEXPR
|
||||
bool __libcpp_is_constant_evaluated() _NOEXCEPT { return false; }
|
||||
#endif
|
||||
|
||||
template <class _CharT>
|
||||
using _IsCharLikeType = _And<is_standard_layout<_CharT>, is_trivial<_CharT> >;
|
||||
|
|
|
@ -328,9 +328,7 @@ __cpp_lib_void_t 201411L <type_traits>
|
|||
# define __cpp_lib_integer_comparison_functions 202002L
|
||||
# endif
|
||||
# define __cpp_lib_interpolate 201902L
|
||||
# if !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)
|
||||
# define __cpp_lib_is_constant_evaluated 201811L
|
||||
# endif
|
||||
# define __cpp_lib_is_constant_evaluated 201811L
|
||||
// # define __cpp_lib_is_layout_compatible 201907L
|
||||
# define __cpp_lib_is_nothrow_convertible 201806L
|
||||
// # define __cpp_lib_is_pointer_interconvertible 201907L
|
||||
|
|
|
@ -23,7 +23,7 @@ int main (int, char**) {
|
|||
ASSERT_SAME_TYPE(decltype(std::__libcpp_is_constant_evaluated()), bool);
|
||||
ASSERT_NOEXCEPT(std::__libcpp_is_constant_evaluated());
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED) && !defined(_LIBCPP_CXX03_LANG)
|
||||
#if !defined(_LIBCPP_CXX03_LANG)
|
||||
static_assert(std::__libcpp_is_constant_evaluated(), "");
|
||||
#endif
|
||||
|
||||
|
|
|
@ -402,17 +402,11 @@
|
|||
# endif
|
||||
# endif
|
||||
|
||||
# if TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900
|
||||
# ifndef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should be defined in c++20"
|
||||
# endif
|
||||
# if __cpp_lib_is_constant_evaluated != 201811L
|
||||
# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20"
|
||||
# endif
|
||||
# else
|
||||
# ifdef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should not be defined when TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900 is not defined!"
|
||||
# endif
|
||||
# ifndef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should be defined in c++20"
|
||||
# endif
|
||||
# if __cpp_lib_is_constant_evaluated != 201811L
|
||||
# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_is_final
|
||||
|
@ -571,17 +565,11 @@
|
|||
# endif
|
||||
# endif
|
||||
|
||||
# if TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900
|
||||
# ifndef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should be defined in c++2b"
|
||||
# endif
|
||||
# if __cpp_lib_is_constant_evaluated != 201811L
|
||||
# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++2b"
|
||||
# endif
|
||||
# else
|
||||
# ifdef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should not be defined when TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900 is not defined!"
|
||||
# endif
|
||||
# ifndef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should be defined in c++2b"
|
||||
# endif
|
||||
# if __cpp_lib_is_constant_evaluated != 201811L
|
||||
# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++2b"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_is_final
|
||||
|
|
|
@ -2707,17 +2707,11 @@
|
|||
# endif
|
||||
# endif
|
||||
|
||||
# if TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900
|
||||
# ifndef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should be defined in c++20"
|
||||
# endif
|
||||
# if __cpp_lib_is_constant_evaluated != 201811L
|
||||
# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20"
|
||||
# endif
|
||||
# else
|
||||
# ifdef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should not be defined when TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900 is not defined!"
|
||||
# endif
|
||||
# ifndef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should be defined in c++20"
|
||||
# endif
|
||||
# if __cpp_lib_is_constant_evaluated != 201811L
|
||||
# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_is_final
|
||||
|
@ -3888,17 +3882,11 @@
|
|||
# endif
|
||||
# endif
|
||||
|
||||
# if TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900
|
||||
# ifndef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should be defined in c++2b"
|
||||
# endif
|
||||
# if __cpp_lib_is_constant_evaluated != 201811L
|
||||
# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++2b"
|
||||
# endif
|
||||
# else
|
||||
# ifdef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should not be defined when TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900 is not defined!"
|
||||
# endif
|
||||
# ifndef __cpp_lib_is_constant_evaluated
|
||||
# error "__cpp_lib_is_constant_evaluated should be defined in c++2b"
|
||||
# endif
|
||||
# if __cpp_lib_is_constant_evaluated != 201811L
|
||||
# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++2b"
|
||||
# endif
|
||||
|
||||
# ifndef __cpp_lib_is_final
|
||||
|
|
|
@ -369,8 +369,6 @@ feature_test_macros = [ add_version_header(x) for x in [
|
|||
"name": "__cpp_lib_is_constant_evaluated",
|
||||
"values": { "c++20": 201811 },
|
||||
"headers": ["type_traits"],
|
||||
"test_suite_guard": "TEST_HAS_BUILTIN(__builtin_is_constant_evaluated) || TEST_GCC_VER >= 900",
|
||||
"libcxx_guard": "!defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED)",
|
||||
}, {
|
||||
"name": "__cpp_lib_is_final",
|
||||
"values": { "c++14": 201402 },
|
||||
|
|
Loading…
Reference in New Issue