From 148dfc00c9434dbf980ae628b4a7f448ef28b32e Mon Sep 17 00:00:00 2001 From: Florin Iucha Date: Sat, 15 Dec 2018 09:46:35 -0500 Subject: [PATCH] Fix GCC8.2 conversion warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lib/fmt/include/fmt/format-inl.h:759:27: error: conversion from ‘ptrdiff_t’ {aka ‘long int’} to ‘int’ may change value [-Werror=conversion] grisu2_prettify(params, size, cached_exp + exp, prettify_handler(buf, size)); ^~~~ --- include/fmt/format-inl.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/fmt/format-inl.h b/include/fmt/format-inl.h index 9b739635..606a474a 100644 --- a/include/fmt/format-inl.h +++ b/include/fmt/format-inl.h @@ -464,14 +464,14 @@ FMT_FUNC fp get_cached_power(int min_exponent, int &pow10_exponent) { } FMT_FUNC bool grisu2_round( - char *buf, ptrdiff_t &size, size_t max_digits, uint64_t delta, + char *buf, int &size, size_t max_digits, uint64_t delta, uint64_t remainder, uint64_t exp, uint64_t diff, int &exp10) { while (remainder < diff && delta - remainder >= exp && (remainder + exp < diff || diff - remainder > remainder + exp - diff)) { --buf[size - 1]; remainder += exp; } - if (size > static_cast(max_digits)) { + if (size > static_cast(max_digits)) { --size; ++exp10; if (buf[size] >= '5') @@ -482,7 +482,7 @@ FMT_FUNC bool grisu2_round( // Generates output using Grisu2 digit-gen algorithm. FMT_FUNC bool grisu2_gen_digits( - char *buf, ptrdiff_t &size, uint32_t hi, uint64_t lo, int &exp, + char *buf, int &size, uint32_t hi, uint64_t lo, int &exp, uint64_t delta, const fp &one, const fp &diff, size_t max_digits) { // Generate digits for the most significant part (hi). while (exp > 0) { @@ -507,7 +507,7 @@ FMT_FUNC bool grisu2_gen_digits( buf[size++] = static_cast('0' + digit); --exp; uint64_t remainder = (static_cast(hi) << -one.e) + lo; - if (remainder <= delta || size > static_cast(max_digits)) { + if (remainder <= delta || size > static_cast(max_digits)) { return grisu2_round( buf, size, max_digits, delta, remainder, static_cast(data::POWERS_OF_10_32[exp]) << -one.e, @@ -750,7 +750,7 @@ FMT_FUNC typename std::enable_if::type // lo (p2 in Grisu) contains the least significants digits of scaled_upper. // lo = supper % one. uint64_t lo = upper.f & (one.f - 1); - ptrdiff_t size = 0; + int size = 0; if (!grisu2_gen_digits(buf.data(), size, hi, lo, exp, delta, one, diff, params.num_digits)) { buf.clear();