https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98384
--- Comment #7 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> --- > --- Comment #6 from Patrick Palka <ppalka at gcc dot gnu.org> --- [...] > Thanks for testing! Hmm, that execute failure is surprising. I wonder just > how much we're diverging from the output of printf here. If possible, could > you let me know the value of the locals 'to_chars_buffer', 'printf_buffer', > 'precision' and 'testcase' (ideally in hex form) at the point of the assertion > failure? I'm seeing exactly the same failure mode on Solaris, both sparc and x86: 32-bit compilation PASSes, execution XFAILed, 64-bit compilation PASSes, too, but execution FAILs with the same assertion failure. Here's what gdb prints for those variables (with the test compiled with -g3 -O0 where the assertion still fails): (gdb) p to_chars_buffer $1 = "f.", 'f' <repeats 14 times>, "ep+5380", '\000' <repeats 1000 times> (gdb) p printf_buffer $2 = "0x1.", 'f' <repeats 15 times>, "cp+5383", '\000' <repeats 997 times> (gdb) p precision No symbol "precision" in current context. (gdb) p testcase $3 = 5.56540347525605847154e+1620 (gdb) p/x testcase $5 = 0x7fffffffffffffff