From 30ec6407b203cef234e9a2c67b9d9ee071225def Mon Sep 17 00:00:00 2001 From: refnum <68672+refnum@users.noreply.github.com> Date: Sun, 1 Mar 2020 15:22:15 +0000 Subject: [PATCH] Fix simple -Wsign-conversion cases. (#1571) * Fix -Wsign-conversion in bigint::subtract_aligned. n is assigned a size_t, and only used for comparisons with j. j is assigned 0, compared to n (size_t), and passed to basic_memory_buffer::operator[] (size_t). * Fix -Wsign-conversion in bigint::assign. num_bigits is initialised to 0, is only ever incremented, and is passed to basic_memory_buffer::operator[] (size_t) and basic_memory_buffer::resize (size_t). --- include/fmt/format-inl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/fmt/format-inl.h b/include/fmt/format-inl.h index 5a5e9c6d80db..77bbdce73318 100644 --- a/include/fmt/format-inl.h +++ b/include/fmt/format-inl.h @@ -527,7 +527,7 @@ class bigint { FMT_ASSERT(compare(*this, other) >= 0, ""); bigit borrow = 0; int i = other.exp_ - exp_; - for (int j = 0, n = static_cast(other.bigits_.size()); j != n; + for (size_t j = 0, n = other.bigits_.size(); j != n; ++i, ++j) { subtract_bigits(i, other.bigits_[j], borrow); } @@ -579,7 +579,7 @@ class bigint { } void assign(uint64_t n) { - int num_bigits = 0; + size_t num_bigits = 0; do { bigits_[num_bigits++] = n & ~bigit(0); n >>= bigit_bits;