OSDN Git Service

2011-04-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 29 Apr 2011 14:56:02 +0000 (14:56 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 29 Apr 2011 14:56:02 +0000 (14:56 +0000)
commit20b8800c1193b72112bdb198d8afa1aaeed99dd5
tree7c17b1373c610a14b69aea91b26798d2921a7d89
parentf5ff0b2195783e33b0cf2e91f857882434f8f01f
2011-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
    Janne Blomqvist  <jb@gcc.gnu.org>

PR libgfortran/48488
PR libgfortran/48602
PR libgfortran/48615
PR libgfortran/48684
PR libgfortran/48787
* io/write.c (write_d, write_e, write_f, write_en,
write_es): Add precision compemsation parameter to call.
(set_fnode_default): Adjust default widths to assure
round trip on write and read. (write_real): Adjust call to write_float.
(write_real_g0): Calculate compensation for extra precision and adjust
call to write_float.
* io/write_float.def (output_float_FMT_G_): Use volatile rather than
asm volatile to avoid optimization issue. Correctly calculate the
number of blanks (nb) to be appended and simplify calculation logic.
(write_float): Increase MIN_FIELD_WIDTH by one to accomodate the new
default widths. Eliminate the code that attempted to reduce the
the precision used in later sprintf functions.  Add call parameter to
compensate for extra precision.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173166 138bc75d-0d04-0410-961f-82ee72b054a4
libgfortran/ChangeLog
libgfortran/io/write.c
libgfortran/io/write_float.def