[PATCH] Fix overflow in __gnu_cxx::__numeric_traits::__min

Paolo Carlini paolo.carlini@oracle.com
Fri Dec 1 14:22:00 GMT 2017


Hi,

On 01/12/2017 15:11, Jonathan Wakely wrote:
> On 01/12/17 14:02 +0000, Jonathan Wakely wrote:
>> Is there a reason we left-shift into the sign bit, causing undefined
>> behaviour? The approach used in std::numeric_limits seems better.
>
> The current code warns with -Wpedantic -Wsystem-headers:
>
> /usr/include/c++/7/ext/numeric_traits.h:58:35: warning: overflow in 
> implicit constant conversion [-Woverflow]
>       static const _Value __min = __glibcxx_min(_Value);
>                                   ^~~~~~~~~~~~~
Many details can be found in c++/52119. Which should probably be 
updated, right?

At the time I handled the libstdc++ side of the issue, and for some 
reason forgot to fix at the same time the ext/numeric_traits bits. I 
have no idea why, maybe to be conservative, in a way.

Paolo.



More information about the Libstdc++ mailing list