https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110145

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jsm28 at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Actually, even simple
double a = 1e126;

int
main ()
{
  __builtin_printf ("%.13a\n", a);
}
behaves differently in C between -m64 and -m32 -fexcess-precision=standard.
-m64 gives
0x1.7a2ecc414a03fp+418
while -m32 -fexcess-precision=standard gives
0x1.7a2ecc414a040p+418
Now, 1e126L is 0xb.d176620a501fc0000000000000p+415, which is that
0x1.7a2ecc414a03fp+418
exactly.  So wonder why we try to round that up.

Reply via email to