[Bug libfortran/59836] [4.7/4.8/4.9 Regression] Wrong outputs with rounding formats for some values.
dominiq at lps dot ens.fr
gcc-bugzilla@gcc.gnu.org
Sat Jan 18 16:46:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59836
Dominique d'Humieres <dominiq at lps dot ens.fr> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jb at gcc dot gnu.org
--- Comment #5 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
The line
if (w > 0 && d == 0 && p == 0)
has been introduced at r173408 and obviously the first code in comment 0 has
started to give the wrong output after it.
The second code in comment 0 has started to give the wrong output after r185433
(so far I did not try to understand why).
Note that the block
if (nbefore + nafter == 0)
{
ndigits = 0;
if (nzero_real == d && digits[0] >= rchar)
{
/* We rounded to zero but shouldn't have */
nzero--;
nafter = 1;
digits[0] = '1';
ndigits = 1;
}
is present in the first version of libgfortran/io/write_float.def (r128114)
with char replaced with '5' (the change was introduced at r152263).
More information about the Gcc-bugs
mailing list