aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2019-03-22 16:45:48 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2019-03-22 16:45:48 +0000
commiteca5f9254bbb06364a0fc91fdf7bde820bd8d225 (patch)
tree7765e58343fb2fee8fe484383a97fbc3000d54b1
parent5c3703c552d12e7e62febf4fe5deb837a1305f78 (diff)
downloadgcc-eca5f9254bbb06364a0fc91fdf7bde820bd8d225.zip
gcc-eca5f9254bbb06364a0fc91fdf7bde820bd8d225.tar.gz
gcc-eca5f9254bbb06364a0fc91fdf7bde820bd8d225.tar.bz2
Avoid -Wconversion warnings when -Wsystem-headers is used
* include/bits/stl_algobase.h (__lg): Do arithmetic on type int to avoid -Wconversion warnings. From-SVN: r269876
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/include/bits/stl_algobase.h12
2 files changed, 11 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c867226..2a3021a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2019-03-22 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_algobase.h (__lg): Do arithmetic on type int to
+ avoid -Wconversion warnings.
+
2019-03-21 Thomas Rodgers <trodgers@redhat.com>
* include/Makefile.am (std_header): Add ${std_srcdir}/execution.
diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h
index 2b69e65..3b11394 100644
--- a/libstdc++-v3/include/bits/stl_algobase.h
+++ b/libstdc++-v3/include/bits/stl_algobase.h
@@ -1018,27 +1018,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Precondition: __n > 0.
inline _GLIBCXX_CONSTEXPR int
__lg(int __n)
- { return sizeof(int) * __CHAR_BIT__ - 1 - __builtin_clz(__n); }
+ { return (int)sizeof(int) * __CHAR_BIT__ - 1 - __builtin_clz(__n); }
inline _GLIBCXX_CONSTEXPR unsigned
__lg(unsigned __n)
- { return sizeof(int) * __CHAR_BIT__ - 1 - __builtin_clz(__n); }
+ { return (int)sizeof(int) * __CHAR_BIT__ - 1 - __builtin_clz(__n); }
inline _GLIBCXX_CONSTEXPR long
__lg(long __n)
- { return sizeof(long) * __CHAR_BIT__ - 1 - __builtin_clzl(__n); }
+ { return (int)sizeof(long) * __CHAR_BIT__ - 1 - __builtin_clzl(__n); }
inline _GLIBCXX_CONSTEXPR unsigned long
__lg(unsigned long __n)
- { return sizeof(long) * __CHAR_BIT__ - 1 - __builtin_clzl(__n); }
+ { return (int)sizeof(long) * __CHAR_BIT__ - 1 - __builtin_clzl(__n); }
inline _GLIBCXX_CONSTEXPR long long
__lg(long long __n)
- { return sizeof(long long) * __CHAR_BIT__ - 1 - __builtin_clzll(__n); }
+ { return (int)sizeof(long long) * __CHAR_BIT__ - 1 - __builtin_clzll(__n); }
inline _GLIBCXX_CONSTEXPR unsigned long long
__lg(unsigned long long __n)
- { return sizeof(long long) * __CHAR_BIT__ - 1 - __builtin_clzll(__n); }
+ { return (int)sizeof(long long) * __CHAR_BIT__ - 1 - __builtin_clzll(__n); }
_GLIBCXX_BEGIN_NAMESPACE_ALGO