
On Tue, Oct 30, 2012 at 3:15 AM, Vicente J. Botet Escriba <vicente.botet@wanadoo.fr> wrote:
Le 29/10/12 20:16, Jeff Flinn a écrit :
I've just downloaded boost_1_52_0_beta1 and get the warning below in my user code on VC11(I'm using thread which evidently brings in the above libs). I didn't see mention of this in trac. I'm moving forward from 1.47 and from VC8 so I'm not sure if this is an indication of some project setting[s] of mine, or if it should be corrected in the lib?
Thanks, Jeff
6>D:\boost_1_52_0_beta1\boost/ratio/detail/overflow_helpers.hpp(136): warning C4293: '<<' : shift count negative or too big, undefined behavior
The concerned code is
static const boost::intmax_t nan = (BOOST_RATIO_INTMAX_C(1) << (sizeof(boost::intmax_t) * CHAR_BIT - 1));
I don't reach to see why the shift count could be negative or too big.
If I'm not mistaken, the shifted (positive) value exceeds the intmax_t value range (which is signed) but fits into uintmax_t. E.g. for 64 bit intmax_t it's 1 << 63 while intmax_t range is [-2^63; 2^63 - 1].