diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2019-05-03 20:13:31 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2019-05-03 20:13:31 +0100 |
commit | 56e5b093de436686effacab1f3211f8695be39a6 (patch) | |
tree | 48d119952209a7662663077dda354d3fbca36916 | |
parent | 16df7038715e9644dc3e23984439731db4333e57 (diff) | |
download | gcc-56e5b093de436686effacab1f3211f8695be39a6.zip gcc-56e5b093de436686effacab1f3211f8695be39a6.tar.gz gcc-56e5b093de436686effacab1f3211f8695be39a6.tar.bz2 |
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
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/include/ext/numeric_traits.h | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 6c93604..b139014 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2019-05-03 Jonathan Wakely <jwakely@redhat.com> + + PR libstdc++/52119 + * include/ext/numeric_traits.h (__glibcxx_min): Avoid integer + overflow warning with -Wpedantic -Wsystem-headers. + 2019-05-02 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/90314 diff --git a/libstdc++-v3/include/ext/numeric_traits.h b/libstdc++-v3/include/ext/numeric_traits.h index 67993fd..43ba1c8 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) ? \ |