Fix PR#24267. use numeric_limits::max instead of ~0 for 'all ones', since that might...
authorMarshall Clow <mclow.lists@gmail.com>
Thu, 30 Jul 2015 18:26:34 +0000 (18:26 +0000)
committerMarshall Clow <mclow.lists@gmail.com>
Thu, 30 Jul 2015 18:26:34 +0000 (18:26 +0000)
llvm-svn: 243674

libcxx/include/algorithm

index 7b0c53e..c1635fc 100644 (file)
@@ -3037,7 +3037,7 @@ uniform_int_distribution<_IntType>::operator()(_URNG& __g, const param_type& __p
     if (_Rp == 0)
         return static_cast<result_type>(_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;