https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104859
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>: https://gcc.gnu.org/g:65857caee8ccfac5007a9fd0e5f18cce5e5fe934 commit r12-7571-g65857caee8ccfac5007a9fd0e5f18cce5e5fe934 Author: Patrick Palka <ppa...@redhat.com> Date: Wed Mar 9 18:48:52 2022 -0500 libstdc++: Avoid implicit narrowing from uint128_t [PR104859] We need to be explicit about narrowing conversions from uint128_t since, on targets that lack __int128, this type is defined as an integer-class type that is only _explicitly_ convertible to the builtin integer types. This issue was latent until r12-7563-ge32869a17b788b made the frontend correctly reject explicit conversion functions during (dependent) copy-initialization. PR libstdc++/104859 libstdc++-v3/ChangeLog: * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): Be explicit when narrowing the shifted effective_mantissa, since it may have an integer-class type.