https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103387
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- And that's because we're using the ostream's cached _M_num_put but that is the wrong one: (gdb) step std::basic_ostream<char, std::char_traits<char> >::_M_insert<__ieee128> (this=0x101c0900 <std::cout>, __v=0.100000000000000000000000000000000005) at /home/test/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/ostream.tcc:66 66 sentry __cerb(*this); (gdb) n 67 if (__cerb) (gdb) 69 ios_base::iostate __err = ios_base::goodbit; (gdb) 72 const __num_put_type& __np = __check_facet(this->_M_num_put); (gdb) p _M_num_put $18 = (const std::basic_ios<char, std::char_traits<char> >::__num_put_type *) 0x101c1f98 <(anonymous namespace)::num_put_c>