aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2008-12-05 04:07:45 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2008-12-05 04:07:45 +0000
commite318b7602bc8f91d9ab4342c50e574734519314a (patch)
tree3d5f22c3ad507302876cd86325c7e5d4aa8921f8 /libgfortran
parentcd8235c00efb45a1a32310adeb310f5428b609c0 (diff)
downloadgcc-e318b7602bc8f91d9ab4342c50e574734519314a.zip
gcc-e318b7602bc8f91d9ab4342c50e574734519314a.tar.gz
gcc-e318b7602bc8f91d9ab4342c50e574734519314a.tar.bz2
re PR fortran/38285 (Wrong I/O output: Interaction between F and P for output)
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
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog6
-rw-r--r--libgfortran/io/write_float.def3
2 files changed, 8 insertions, 1 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 36c0098..bb860d4 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -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
diff --git a/libgfortran/io/write_float.def b/libgfortran/io/write_float.def
index 8bb4123..d8799f2 100644
--- a/libgfortran/io/write_float.def
+++ b/libgfortran/io/write_float.def
@@ -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;\