]> gcc.gnu.org Git - gcc.git/commitdiff
re PR libfortran/20101 (zero prints incorrectly with 1pe12.4)
authorFrancois-Xavier Coudert <coudert@clipper.ens.fr>
Sun, 27 Feb 2005 19:47:12 +0000 (20:47 +0100)
committerTobias Schlüter <tobi@gcc.gnu.org>
Sun, 27 Feb 2005 19:47:12 +0000 (20:47 +0100)
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
gcc/testsuite/gfortran.dg/write_0_pe_format.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/io/write.c

index aebf34b5f6ef7cc8e6ceba932cd640cfa4d8a30d..5c55f5ff7183f3e9d566e6864c9ce66678449182 100644 (file)
@@ -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 (file)
index 0000000..3890c32
--- /dev/null
@@ -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
index c7b5821e890dfa3f75081d522dc710f0dd489dc4..052664c10685bffbd5d0e223c1a1b2700c6e3acc 100644 (file)
@@ -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.
index d4ee605de298205420120a7c0b1ca8c26f6d281a..9b71cc5a7f437ab2761d007481463d21f803519d 100644 (file)
@@ -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;
This page took 0.172978 seconds and 5 git commands to generate.