From: Jonathan Wakely Date: Fri, 3 May 2019 19:13:31 +0000 (+0100) Subject: Avoid -Woverflow warning in __numeric_limits_integer X-Git-Tag: misc/cutover-git~5763 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=56e5b093de436686effacab1f3211f8695be39a6;p=thirdparty%2Fgcc.git Avoid -Woverflow warning in __numeric_limits_integer This is the same fix as was done for std::numeric_limits in r183905. PR libstdc++/52119 * include/ext/numeric_traits.h (__glibcxx_min): Avoid integer overflow warning with -Wpedantic -Wsystem-headers. From-SVN: r270858 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 6c93604d3187..b1390142cb18 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2019-05-03 Jonathan Wakely + + PR libstdc++/52119 + * include/ext/numeric_traits.h (__glibcxx_min): Avoid integer + overflow warning with -Wpedantic -Wsystem-headers. + 2019-05-02 Jonathan Wakely PR libstdc++/90314 diff --git a/libstdc++-v3/include/ext/numeric_traits.h b/libstdc++-v3/include/ext/numeric_traits.h index 67993fdc58ee..43ba1c8740a8 100644 --- a/libstdc++-v3/include/ext/numeric_traits.h +++ b/libstdc++-v3/include/ext/numeric_traits.h @@ -39,13 +39,13 @@ namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) _GLIBCXX_BEGIN_NAMESPACE_VERSION // Compile time constants for builtin types. - // Sadly std::numeric_limits member functions cannot be used for this. + // In C++98 std::numeric_limits member functions cannot be used for this. #define __glibcxx_signed(_Tp) ((_Tp)(-1) < 0) #define __glibcxx_digits(_Tp) \ (sizeof(_Tp) * __CHAR_BIT__ - __glibcxx_signed(_Tp)) #define __glibcxx_min(_Tp) \ - (__glibcxx_signed(_Tp) ? (_Tp)1 << __glibcxx_digits(_Tp) : (_Tp)0) + (__glibcxx_signed(_Tp) ? -__glibcxx_max(_Tp) - 1 : (_Tp)0) #define __glibcxx_max(_Tp) \ (__glibcxx_signed(_Tp) ? \