Avoid -Wconversion warnings when -Wsystem-headers is used
authorJonathan Wakely <jwakely@redhat.com>
Fri, 22 Mar 2019 16:45:48 +0000 (16:45 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 22 Mar 2019 16:45:48 +0000 (16:45 +0000)
* include/bits/stl_algobase.h (__lg): Do arithmetic on type int to
avoid -Wconversion warnings.

From-SVN: r269876

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_algobase.h

index c8672263a6f7ab0d273ed5bba6868a56fc0e31a6..2a3021a2f664e78160211bf73ef6eceb8a7031cf 100644 (file)
@@ -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.
index 2b69e658fe8953cb1d03c8da923645b895cafa17..3b1139401ee0ae40a154026737668e1c0fff5246 100644 (file)
@@ -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