Skip to content

[libc] Fix recently introduced integer-type warnings #125864

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion libc/src/__support/FPUtil/dyadic_float.h
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,7 @@ approx_reciprocal(const DyadicFloat<Bits> &a) {
// of correct bits in x' is double the number in x.

// An initial approximation to the reciprocal
DyadicFloat<Bits> x(Sign::POS, -32 - a.exponent - Bits,
DyadicFloat<Bits> x(Sign::POS, -32 - a.exponent - int(Bits),
uint64_t(0xFFFFFFFFFFFFFFFF) /
static_cast<uint64_t>(a.mantissa >> (Bits - 32)));

Expand Down
2 changes: 1 addition & 1 deletion libc/src/__support/integer_to_string.h
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ extract_decimal_digit(T &value) {
// Having multiplied it by 6, add the lowest half-word, and then reduce mod
// 10 by normal integer division to finish.
acc_remainder += value.val[0] & HALFWORD_MASK;
uint8_t digit = acc_remainder % 10;
uint8_t digit = static_cast<uint8_t>(acc_remainder % 10);

// Now we have the output digit. Subtract it from the input value, and shift
// right to divide by 2.
Expand Down
8 changes: 4 additions & 4 deletions libc/src/stdio/printf_core/float_dec_converter_limited.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ struct DigitsOutput {
// enough that for any binary exponent in the range of float128 it will give
// the correct value of floor(log10(2^n)).
LIBC_INLINE int estimate_log10(int exponent_of_2) {
return (exponent_of_2 * 1292913986LL) >> 32;
return static_cast<int>((exponent_of_2 * 1292913986LL) >> 32);
}

// Calculate the actual digits of a decimal representation of an FP number.
Expand Down Expand Up @@ -189,7 +189,7 @@ DigitsOutput decimal_digits(DigitsInput input, int precision, bool e_mode) {
// overflow _after_ the multiplication and retry. So if even the smaller
// number of possible output digits is too many, we might as well change our
// mind right now and switch into E mode.
if (log10_input_max - log10_low_digit + 1 > MAX_DIGITS) {
if (log10_input_max - log10_low_digit + 1 > int(MAX_DIGITS)) {
precision = MAX_DIGITS;
e_mode = true;
log10_low_digit = log10_input_min + 1 - precision;
Expand Down Expand Up @@ -362,8 +362,8 @@ DigitsOutput decimal_digits(DigitsInput input, int precision, bool e_mode) {
// we made it from and doing the decimal conversion all over again.)
for (size_t i = output.ndigits; i-- > 0;) {
if (output.digits[i] != '9') {
output.digits[i] = internal::int_to_b36_char(
internal::b36_char_to_int(output.digits[i]) + 1);
output.digits[i] = static_cast<char>(internal::int_to_b36_char(
internal::b36_char_to_int(output.digits[i]) + 1));
break;
} else {
output.digits[i] = '0';
Expand Down