From d8f92af2cf130270d367242c9e1ac34004e6c3bb Mon Sep 17 00:00:00 2001 From: Francois-Xavier Coudert <coudert@clipper.ens.fr> Date: Sun, 27 Feb 2005 20:47:12 +0100 Subject: [PATCH] re PR libfortran/20101 (zero prints incorrectly with 1pe12.4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit libgfortran/ 2005-02-27 Fran��ois-Xavier Coudert <coudert@clipper.ens.fr> PR libfortran/20101 * write.c (output_float): Adding special check for value 0.0 in PE format. gcc/testsuite/ 2005-02-27 Fran��ois-Xavier Coudert <coudert@clipper.ens.fr> PR libfortran/20101 * gfortran.dg/write_0_pe_format.f90: New test. From-SVN: r95628 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/write_0_pe_format.f90 | 9 +++++++++ libgfortran/ChangeLog | 6 ++++++ libgfortran/io/write.c | 3 ++- 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/write_0_pe_format.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index aebf34b5f6ef..5c55f5ff7183 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-02-27 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20101 + * gfortran.dg/write_0_pe_format.f90: New test. + 2005-02-27 Jakub Jelinek <jakub@redhat.com> PR c++/20206 diff --git a/gcc/testsuite/gfortran.dg/write_0_pe_format.f90 b/gcc/testsuite/gfortran.dg/write_0_pe_format.f90 new file mode 100644 index 000000000000..3890c32ecc02 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/write_0_pe_format.f90 @@ -0,0 +1,9 @@ +! { dg-do run } +! PR libfortran/20101 +! With format "PE", 0.0 must still have "+00" as exponent +character(len=10) :: c1, c2 +write(c1,"(1pe9.2)") 0.0 +write(c2,"(1pe9.2)") 1.0 +if (trim(adjustl(c1)) .ne. "0.00E+00") call abort() +if (trim(adjustl(c2)) .ne. "1.00E+00") call abort() +end diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index c7b5821e890d..052664c10685 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2005-02-27 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20101 + * write.c (output_float): Added special check for value 0.0 in + PE format. + 2004-02-27 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> * io/write.c (output_float): Fix typo in condition. diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index d4ee605de298..9b71cc5a7f43 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -375,7 +375,8 @@ output_float (fnode *f, double value, int len) case FMT_E: case FMT_D: i = g.scale_factor; - e -= i; + if (value != 0.0) + e -= i; if (i < 0) { nbefore = 0; -- GitLab