From 58e6c84f5a3258a9cf9cd465fd9b1a9423d62f8e 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 1ac206a8..4ad4df4c 100644 --- a/include/fmt/format-inl.h +++ b/include/fmt/format-inl.h @@ -526,7 +526,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); } @@ -578,7 +578,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;