https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64054
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Weird. Somehow the double variable 'd' is getting set to 6 after it is (correctly) written to the stream, so converting "0x1.1000000000000p+8" back to a double doesn't compare equal to it, because 272. != 6. Smells like memory corruption of some kind.