Fix warnings

This commit is contained in:
Victor Zverovich 2019-06-13 07:25:29 -07:00
parent cbbee1b385
commit 34b5418359
2 changed files with 12 additions and 15 deletions

View File

@ -385,9 +385,9 @@ inline bool isnan(T value) {
return std::isnan(value);
}
template <typename T> inline int to_int(T value) {
FMT_ASSERT(isnan(value) || (value >= (std::numeric_limits<int>::min)() &&
value <= (std::numeric_limits<int>::max)()),
// Convers value to int and checks that it's in the range [0, upper).
template <typename T> inline int to_int(T value, int upper) {
FMT_ASSERT(isnan(value) || (value >= 0 && value <= upper),
"invalid value");
return static_cast<int>(value);
}
@ -483,9 +483,9 @@ struct chrono_formatter {
std::tm time() const {
auto time = std::tm();
time.tm_hour = to_int(hour());
time.tm_min = to_int(minute());
time.tm_sec = to_int(second());
time.tm_hour = to_int(hour(), 24);
time.tm_min = to_int(minute(), 60);
time.tm_sec = to_int(second(), 60);
return time;
}
@ -500,7 +500,7 @@ struct chrono_formatter {
write_sign();
if (isnan(value)) return write_nan();
typedef typename int_traits<int>::main_type main_type;
main_type n = to_unsigned(to_int(value));
main_type n = to_unsigned(to_int(value, (std::numeric_limits<int>::max)()));
int num_digits = internal::count_digits(n);
if (width > num_digits) out = std::fill_n(out, width - num_digits, '0');
out = format_decimal<char_type>(out, n, num_digits);
@ -541,21 +541,21 @@ struct chrono_formatter {
void on_24_hour(numeric_system ns) {
if (ns == numeric_system::standard) return write(hour(), 2);
auto time = tm();
time.tm_hour = to_int(hour());
time.tm_hour = to_int(hour(), 24);
format_localized(time, "%OH");
}
void on_12_hour(numeric_system ns) {
if (ns == numeric_system::standard) return write(hour12(), 2);
auto time = tm();
time.tm_hour = to_int(hour12());
time.tm_hour = to_int(hour12(), 12);
format_localized(time, "%OI");
}
void on_minute(numeric_system ns) {
if (ns == numeric_system::standard) return write(minute(), 2);
auto time = tm();
time.tm_min = to_int(minute());
time.tm_min = to_int(minute(), 60);
format_localized(time, "%OM");
}
@ -570,7 +570,7 @@ struct chrono_formatter {
return;
}
auto time = tm();
time.tm_sec = to_int(second());
time.tm_sec = to_int(second(), 60);
format_localized(time, "%OS");
}

View File

@ -33,6 +33,7 @@
#include <cmath>
#include <cstdint>
#include <cstring>
#include <iterator>
#include <limits>
#include <memory>
#include <stdexcept>
@ -94,10 +95,6 @@
# endif
#endif
#if FMT_SECURE_SCL
# include <iterator>
#endif
#ifdef __has_builtin
# define FMT_HAS_BUILTIN(x) __has_builtin(x)
#else