re PR fortran/38285 (Wrong I/O output: Interaction between F and P for output)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Fri, 5 Dec 2008 04:07:45 +0000 (04:07 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Fri, 5 Dec 2008 04:07:45 +0000 (04:07 +0000)
2008-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/38285
* write_float.def (WRITE_FLOAT): Zero the float value for special case
only if scale_factor = 0.

From-SVN: r142455

libgfortran/ChangeLog
libgfortran/io/write_float.def

index 36c0098..bb860d4 100644 (file)
@@ -1,3 +1,9 @@
+2008-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/38285
+       * write_float.def (WRITE_FLOAT): Zero the float value for special case
+       only if scale_factor = 0.
+       
 2008-11-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR libfortran/38234
index 8bb4123..d8799f2 100644 (file)
@@ -760,7 +760,8 @@ sprintf (buffer, "%+-#" STR(MIN_FIELD_WIDTH) ".*" \
            return;\
          }\
        tmp = sign_bit ? -tmp : tmp;\
-       if (f->u.real.d == 0 && f->format == FMT_F)\
+       if (f->u.real.d == 0 && f->format == FMT_F\
+           && dtp->u.p.scale_factor == 0)\
          {\
            if (tmp < 0.5)\
              tmp = 0.0;\