[libc-commits] [libc] [libc] Add support for writing to wchar_t in printf_core/ converter functions. (PR #230246)
Michael Jones via libc-commits
libc-commits at lists.llvm.org
Wed Oct 14 11:49:01 PDT 2026
================
@@ -181,13 +184,20 @@ convert_finite_float_hex_exp(Writer<mode> *writer,
size_t mant_cur = mant_len;
size_t first_non_zero = 1;
+ bool is_upper = internal::isupper(to_conv.conv_name);
for (; mant_cur > 0; --mant_cur, fp_bits_properties.mantissa >>= 4) {
- char mant_mod_16 = static_cast<char>(fp_bits_properties.mantissa % 16);
- char new_digit = internal::int_to_b36_char(mant_mod_16);
- if (internal::isupper(to_conv.conv_name))
+ int mant_mod_16 = static_cast<int>(fp_bits_properties.mantissa % 16);
+ CharT new_digit;
+ if constexpr (cpp::is_same_v<CharT, char>) {
+ new_digit = internal::int_to_b36_char(mant_mod_16);
+ } else {
+ static_assert(cpp::is_same_v<CharT, wchar_t>);
+ new_digit = internal::int_to_b36_wchar(mant_mod_16);
+ }
----------------
michaelrj-google wrote:
this should probably be guarded by `LIBC_COPT_PRINTF_DISABLE_WIDE`
https://github.com/llvm/llvm-project/pull/230246
More information about the libc-commits
mailing list