diff options
Diffstat (limited to 'libgfortran/io/write.c')
-rw-r--r-- | libgfortran/io/write.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index d7ce6c56807d..edd2933c3de1 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -302,7 +302,8 @@ calculate_G_format (st_parameter_dt *dtp, const fnode *f, /* In case of the two data magnitude ranges, generate E editing, Ew.d[Ee]. */ exp_d = calculate_exp (d); - if ((m > 0.0 && m < 0.1 - 0.05 / exp_d) || (m >= exp_d - 0.5 )) + if ((m > 0.0 && m < 0.1 - 0.05 / exp_d) || (m >= exp_d - 0.5 ) || + ((m == 0.0) && !(compile_options.allow_std & GFC_STD_F2003))) { newf->format = FMT_E; newf->u.real.w = w; |