re PR libfortran/47567 (Wrong output for small absolute values with F editing)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Sat, 19 Feb 2011 15:10:55 +0000 (15:10 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Sat, 19 Feb 2011 15:10:55 +0000 (15:10 +0000)
2011-02-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/47567
* io/write_float.def (output_float): Adjust width for F0.d to
allow space for negative signs on zero.

From-SVN: r170318

libgfortran/ChangeLog
libgfortran/io/write_float.def

index 7371e8e2be1e6b14459bb9436d79212bed88711a..d53329daae6f6a7defd6a1d38c0b98ad58d88d8b 100644 (file)
@@ -1,6 +1,12 @@
-2011-02-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+2011-02-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libgfortran/47567
+       * io/write_float.def (output_float): Adjust width for F0.d to
+       allow space for negative signs on zero.
+
+2011-02-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/47667
        * io/list_read.c (read_logical): Check for end of line before calling
        eat_line. (read_integer): Likewise. (parse_real): Don't unget the
        separator. Check for end of line before calling eat_line.
index 29b8f1f16811ca61b65c0414e97118dd97d27d5d..13738190b089dffc91b3f7e8176dd72895178632 100644 (file)
@@ -116,7 +116,7 @@ output_float (st_parameter_dt *dtp, const fnode *f, char *buffer, size_t size,
 
       /* Handle special cases.  */
       if (w == 0)
-       w = d + 1;
+       w = d + (sign != S_NONE ? 2 : 1) + (d == 0 ? 1 : 0);
 
       /* For this one we choose to not output a decimal point.
         F95 10.5.1.2.1  */