Use new '__libcpp_is_constant_evaluated' call to remove an '#ifdef' from the bit code. NFC

llvm-svn: 364884
This commit is contained in:
Marshall Clow 2019-07-02 03:21:16 +00:00
parent 7ae536a1ce
commit bd7f84a482
1 changed files with 2 additions and 6 deletions

View File

@ -201,7 +201,7 @@ using __bitop_unsigned_integer _LIBCPP_NODEBUG_TYPE = integral_constant<bool,
// rotl
template<class _Tp>
inline _LIBCPP_INLINE_VISIBILITY constexpr
_LIBCPP_INLINE_VISIBILITY constexpr
enable_if_t<__bitop_unsigned_integer<_Tp>::value, _Tp>
rotl(_Tp __t, unsigned int __cnt) noexcept
{
@ -362,11 +362,7 @@ ceil2(_Tp __t) noexcept
{
if (__t < 2) return 1;
const unsigned __n = numeric_limits<_Tp>::digits - countl_zero((_Tp)(__t - 1u));
#ifndef _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED
if (!__builtin_is_constant_evaluated ())
_LIBCPP_DEBUG_ASSERT( __n != numeric_limits<_Tp>::digits, "Bad input to ceil2" );
#endif
_LIBCPP_DEBUG_ASSERT(__libcpp_is_constant_evaluated() || __n != numeric_limits<_Tp>::digits, "Bad input to ceil2");
if constexpr (sizeof(_Tp) >= sizeof(unsigned))
return _Tp{1} << __n;