Author: tstellar Date: Tue Nov 14 16:21:20 2017 New Revision: 318236 URL: http://llvm.org/viewvc/llvm-project?rev=318236&view=rev Log: Merging r313776:
------------------------------------------------------------------------ r313776 | marshall | 2017-09-20 10:34:11 -0700 (Wed, 20 Sep 2017) | 1 line Fix a bit of UB in __independent_bits_engine. Fixes PR#34663 ------------------------------------------------------------------------ Modified: libcxx/branches/release_50/include/algorithm Modified: libcxx/branches/release_50/include/algorithm URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_50/include/algorithm?rev=318236&r1=318235&r2=318236&view=diff ============================================================================== --- libcxx/branches/release_50/include/algorithm (original) +++ libcxx/branches/release_50/include/algorithm Tue Nov 14 16:21:20 2017 @@ -3013,6 +3013,7 @@ template<class _Engine, class _UIntType> _UIntType __independent_bits_engine<_Engine, _UIntType>::__eval(true_type) { + const size_t _WRt = numeric_limits<result_type>::digits; result_type _Sp = 0; for (size_t __k = 0; __k < __n0_; ++__k) { @@ -3021,7 +3022,7 @@ __independent_bits_engine<_Engine, _UInt { __u = __e_() - _Engine::min(); } while (__u >= __y0_); - if (__w0_ < _WDt) + if (__w0_ < _WRt) _Sp <<= __w0_; else _Sp = 0; @@ -3034,7 +3035,7 @@ __independent_bits_engine<_Engine, _UInt { __u = __e_() - _Engine::min(); } while (__u >= __y1_); - if (__w0_ < _WDt - 1) + if (__w0_ < _WRt - 1) _Sp <<= __w0_ + 1; else _Sp = 0; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits