9
9
#ifndef _LIBCPP___UTILITY_CMP_H
10
10
#define _LIBCPP___UTILITY_CMP_H
11
11
12
+ #include " __assert"
12
13
#include < __config>
13
14
#include < __type_traits/integer_traits.h>
14
15
#include < __type_traits/is_signed.h>
@@ -29,10 +30,10 @@ _LIBCPP_BEGIN_NAMESPACE_STD
29
30
template <__signed_or_unsigned_integer _Tp, __signed_or_unsigned_integer _Up>
30
31
_LIBCPP_HIDE_FROM_ABI constexpr bool cmp_equal (_Tp __t , _Up __u) noexcept {
31
32
if constexpr (sizeof (_Tp) < sizeof (int ) && sizeof (_Up) < sizeof (int )) {
32
- __builtin_assume (__t < numeric_limits<int >::max () && __u < numeric_limits<int >::max ());
33
+ _LIBCPP_ASSUME (__t < numeric_limits<int >::max () && __u < numeric_limits<int >::max ());
33
34
return static_cast <int >(__t ) == static_cast <int >(__u);
34
35
} else if constexpr (sizeof (_Tp) < sizeof (long long ) && sizeof (_Up) < sizeof (long long )) {
35
- __builtin_assume (__t < numeric_limits<long long >::max () && __u < numeric_limits<long long >::max ());
36
+ _LIBCPP_ASSUME (__t < numeric_limits<long long >::max () && __u < numeric_limits<long long >::max ());
36
37
return static_cast <long long >(__t ) == static_cast <long long >(__u);
37
38
} else if constexpr (is_signed_v<_Tp> == is_signed_v<_Up>)
38
39
return __t == __u;
@@ -50,10 +51,10 @@ _LIBCPP_HIDE_FROM_ABI constexpr bool cmp_not_equal(_Tp __t, _Up __u) noexcept {
50
51
template <__signed_or_unsigned_integer _Tp, __signed_or_unsigned_integer _Up>
51
52
_LIBCPP_HIDE_FROM_ABI constexpr bool cmp_less (_Tp __t , _Up __u) noexcept {
52
53
if constexpr (sizeof (_Tp) < sizeof (int ) && sizeof (_Up) < sizeof (int )) {
53
- __builtin_assume (__t < numeric_limits<int >::max () && __u < numeric_limits<int >::max ());
54
+ _LIBCPP_ASSUME (__t < numeric_limits<int >::max () && __u < numeric_limits<int >::max ());
54
55
return static_cast <int >(__t ) < static_cast <int >(__u);
55
56
} else if constexpr (sizeof (_Tp) < sizeof (long long ) && sizeof (_Up) < sizeof (long long )) {
56
- __builtin_assume (__t < numeric_limits<long long >::max () && __u < numeric_limits<long long >::max ());
57
+ _LIBCPP_ASSUME (__t < numeric_limits<long long >::max () && __u < numeric_limits<long long >::max ());
57
58
return static_cast <long long >(__t ) < static_cast <long long >(__u);
58
59
} else if constexpr (is_signed_v<_Tp> == is_signed_v<_Up>)
59
60
return __t < __u;
0 commit comments