https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107815
--- Comment #8 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> --- > --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- > The 1e+202L * __DBL_MAX__ number is: > 1797693134862315708145274237317043363780293901488132670510305396153274401107450252964067353821542098883610426262810674725334159395885309388675990127492090757713383689567223448511120723139743573688679064280172265585993927318314820133831157520860190820700571151387146478495139447053313076754655788391539857757373041885363113533243178943928496535556954517148959372706003524689906194839868952331046086040494963209033312113173876118835007579814542996644987978064090838995977878567921521624960885877081515358704107520 > which is 511 bytes long excluding '\0' terminator, so bet they have somewhere > fixed length temporary buffer or what. It certainly seems so: the libc conversion functions use a buffer of length DECIMAL_STRING_LENGTH, which is defined as /* * Definitions for base conversion. */ #define DECIMAL_STRING_LENGTH 512 /* Size of buffer in decimal_record. */ in <floatingpoint.h>. I'll file a bug about this.