PR90374 Zero width format specifiers.
PR libfortran/90374 * io/format.c (parse_format_list): Zero width not allowed with FMT_D. * io/write_float.def (build_float_string): Include range of higher exponent values that require wider width.
This commit is contained in:
parent
7e45138702
commit
82033483fd
|
@ -1,3 +1,11 @@
|
|||
2020-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
PR libfortran/90374
|
||||
* io/format.c (parse_format_list): Zero width not allowed with
|
||||
FMT_D.
|
||||
* io/write_float.def (build_float_string): Include range of
|
||||
higher exponent values that require wider width.
|
||||
|
||||
2020-01-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
PR libfortran/90374
|
||||
|
|
|
@ -954,7 +954,9 @@ parse_format_list (st_parameter_dt *dtp, bool *seen_dd)
|
|||
}
|
||||
tail->u.real.d = fmt->value;
|
||||
|
||||
/* Look for optional exponent */
|
||||
/* Look for optional exponent, not allowed for FMT_D */
|
||||
if (t == FMT_D)
|
||||
break;
|
||||
u = format_lex (fmt);
|
||||
if (u != FMT_E)
|
||||
fmt->saved_token = u;
|
||||
|
|
|
@ -497,7 +497,9 @@ build_float_string (st_parameter_dt *dtp, const fnode *f, char *buffer,
|
|||
else if (f->u.real.e == 0)
|
||||
{
|
||||
/* Zero width specified, no leading zeros in exponent */
|
||||
if (e > 99 || e < -99)
|
||||
if (e > 999 || e < -999)
|
||||
edigits = 6;
|
||||
else if (e > 99 || e < -99)
|
||||
edigits = 5;
|
||||
else if (e > 9 || e < -9)
|
||||
edigits = 4;
|
||||
|
|
Loading…
Reference in New Issue