mirror of
https://github.com/fmtlib/fmt.git
synced 2024-12-27 12:38:37 +00:00
Fix implicit signedness conversion warning (#1963)
Problem: - On Apple clang 11.0.3 (clang-1103.0.32.62), pedantic mode compilation generates the following error: test/std-format-test.cc:114:22: error: implicit conversion changes signedness: 'int' to 'size_t' (aka 'unsigned long') [-Werror,-Wsign-conversion] width_arg_id = c - '0'; ~ ~~^~~~~ Solution: - Use a `to_unsigned` to make the conversion explicit. This is guaranteed to be safe due to the check before the ASCII-to-int conversion.
This commit is contained in:
parent
97c8873214
commit
b3a4f28ad1
@ -111,7 +111,7 @@ template <> struct std::formatter<S> {
|
|||||||
char c = get_char();
|
char c = get_char();
|
||||||
if (!isdigit(c) || (++iter, get_char()) != '}')
|
if (!isdigit(c) || (++iter, get_char()) != '}')
|
||||||
throw format_error("invalid format");
|
throw format_error("invalid format");
|
||||||
width_arg_id = c - '0';
|
width_arg_id = fmt::detail::to_unsigned(c - '0');
|
||||||
ctx.check_arg_id(width_arg_id);
|
ctx.check_arg_id(width_arg_id);
|
||||||
return ++iter;
|
return ++iter;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user