Avoid warnings in <charconv>
authorJonathan Wakely <jwakely@redhat.com>
Fri, 11 Oct 2019 15:29:50 +0000 (16:29 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 11 Oct 2019 15:29:50 +0000 (16:29 +0100)
* include/bits/charconv.h (__to_chars_len): Avoid -Wsign-compare
warnings.

From-SVN: r276889

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

index 6f04a6840ba434cf0b131a78dc0864b4d160e290..1459185de26fc52e411927725d5c266ee240b763 100644 (file)
@@ -1,3 +1,8 @@
+2019-10-11  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/charconv.h (__to_chars_len): Avoid -Wsign-compare
+       warnings.
+
 2019-10-10  Jonathan Wakely  <jwakely@redhat.com>
 
        PR libstdc++/91057
index a5b6be567bcbb5c943afb9678c81c88065418b7c..7c0922fec21b29ce14aaaf704cea65db4ff4c343 100644 (file)
@@ -50,16 +50,16 @@ namespace __detail
       static_assert(is_unsigned<_Tp>::value, "implementation bug");
 
       unsigned __n = 1;
-      const int __b2 = __base  * __base;
-      const int __b3 = __b2 * __base;
-      const int __b4 = __b3 * __base;
+      const unsigned __b2 = __base  * __base;
+      const unsigned __b3 = __b2 * __base;
+      const unsigned long __b4 = __b3 * __base;
       for (;;)
        {
-         if (__value < __base) return __n;
+         if (__value < (unsigned)__base) return __n;
          if (__value < __b2) return __n + 1;
          if (__value < __b3) return __n + 2;
          if (__value < __b4) return __n + 3;
-         __value /= (unsigned)__b4;
+         __value /= __b4;
          __n += 4;
        }
     }