From a6438ca12a72efe147e74b6ea4698f696f52b969 Mon Sep 17 00:00:00 2001 From: Marshall Clow Date: Thu, 30 Jul 2015 18:26:34 +0000 Subject: [PATCH] Fix PR#24267. use numeric_limits::max instead of ~0 for 'all ones', since that might give wrong answers on a 1's complement machine. llvm-svn: 243674 --- libcxx/include/algorithm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm index 7b0c53e..c1635fc 100644 --- a/libcxx/include/algorithm +++ b/libcxx/include/algorithm @@ -3037,7 +3037,7 @@ uniform_int_distribution<_IntType>::operator()(_URNG& __g, const param_type& __p if (_Rp == 0) return static_cast(_Eng(__g, _Dt)()); size_t __w = _Dt - __clz(_Rp) - 1; - if ((_Rp & (_UIntType(~0) >> (_Dt - __w))) != 0) + if ((_Rp & (std::numeric_limits<_UIntType>::max() >> (_Dt - __w))) != 0) ++__w; _Eng __e(__g, __w); _UIntType __u; -- 2.7.4