mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-17 16:31:02 +00:00
[libc++][ABI Break] Make is_error_condition_enum_v and is_error_code_enum_v bool, not size_t
`is_error_condition_enum_v` and `is_error_code_enum_v` are currently of type `size_t`, but the standard mandates they are of type `bool`. This is an ABI break technically since the size of these variable templates has changed. Document it as such in the release notes. Fixes https://bugs.llvm.org/show_bug.cgi?id=50755 Reviewed By: ldionne, Quuxplusone, #libc, var-const Differential Revision: https://reviews.llvm.org/D112553
This commit is contained in:
parent
a66451ebbe
commit
93df7b9f75
@ -78,6 +78,12 @@ API Changes
|
||||
exceeds the maximum supported size, as required by the C++ standard.
|
||||
Previously the type ``std::length_error`` was used.
|
||||
|
||||
ABI Changes
|
||||
-----------
|
||||
|
||||
- The C++17 variable templates ``is_error_code_enum_v`` and
|
||||
``is_error_condition_enum_v`` are now of type ``bool`` instead of ``size_t``.
|
||||
|
||||
Build System Changes
|
||||
--------------------
|
||||
|
||||
|
@ -46,10 +46,10 @@ template <class T> struct is_error_condition_enum
|
||||
: public false_type {};
|
||||
|
||||
template <class _Tp>
|
||||
inline constexpr size_t is_error_condition_enum_v = is_error_condition_enum<_Tp>::value; // C++17
|
||||
inline constexpr bool is_error_condition_enum_v = is_error_condition_enum<_Tp>::value; // C++17
|
||||
|
||||
template <class _Tp>
|
||||
inline constexpr size_t is_error_code_enum_v = is_error_code_enum<_Tp>::value; // C++17
|
||||
inline constexpr bool is_error_code_enum_v = is_error_code_enum<_Tp>::value; // C++17
|
||||
|
||||
class error_code
|
||||
{
|
||||
@ -165,7 +165,7 @@ struct _LIBCPP_TEMPLATE_VIS is_error_code_enum
|
||||
|
||||
#if _LIBCPP_STD_VER > 14
|
||||
template <class _Tp>
|
||||
inline constexpr size_t is_error_code_enum_v = is_error_code_enum<_Tp>::value;
|
||||
inline constexpr bool is_error_code_enum_v = is_error_code_enum<_Tp>::value;
|
||||
#endif
|
||||
|
||||
// is_error_condition_enum
|
||||
@ -176,7 +176,7 @@ struct _LIBCPP_TEMPLATE_VIS is_error_condition_enum
|
||||
|
||||
#if _LIBCPP_STD_VER > 14
|
||||
template <class _Tp>
|
||||
inline constexpr size_t is_error_condition_enum_v = is_error_condition_enum<_Tp>::value;
|
||||
inline constexpr bool is_error_condition_enum_v = is_error_condition_enum<_Tp>::value;
|
||||
#endif
|
||||
|
||||
template <>
|
||||
|
@ -23,6 +23,7 @@ test()
|
||||
static_assert((std::is_error_code_enum<T>::value == Expected), "");
|
||||
#if TEST_STD_VER > 14
|
||||
static_assert((std::is_error_code_enum_v<T> == Expected), "");
|
||||
ASSERT_SAME_TYPE(decltype(std::is_error_code_enum_v<T>), const bool);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,7 @@ test()
|
||||
static_assert((std::is_error_condition_enum<T>::value == Expected), "");
|
||||
#if TEST_STD_VER > 14
|
||||
static_assert((std::is_error_condition_enum_v<T> == Expected), "");
|
||||
ASSERT_SAME_TYPE(decltype(std::is_error_condition_enum_v<T>), const bool);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user