[multiple changes]
authorPaul Brook <pbrook@gcc.gnu.org>
Mon, 6 Sep 2004 16:33:52 +0000 (16:33 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Mon, 6 Sep 2004 16:33:52 +0000 (16:33 +0000)
2004-09-06  Steven G. Kargl  <kargls@comcast.net>

* io/write.c (output_float): Typo in comment.  Remove debugging
printf.  Fix format for FP of form 1e10.

2004-09-06  Paul Brook  <paul@codesourcery.com>

* gfortran.dg/edit_real_1.f90: Add new test.

From-SVN: r87119

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/edit_real_1.f90
libgfortran/io/write.c

index b5ebb4f4776ef32738a28fa358f1d7b209df3e16..fe5e53114b9f13a6192ee5b55d01bbb5726f4831 100644 (file)
@@ -1,3 +1,8 @@
+2004-09-06  Steven G. Kargl  <kargls@comcast.net>
+
+       * io/write.c (output_float): Typo in comment.  Remove debugging
+       printf.  Fix format for FP of form 1e10.
+
 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
 
        * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
index a96882522a8479bb4c479c191ad71e3c3baf4713..076bbf594da0626020425d46bfe9edb447c5987e 100644 (file)
@@ -1,3 +1,7 @@
+2004-09-06  Paul Brook  <paul@codesourcery.com>
+
+       * gfortran.dg/edit_real_1.f90: Add new test.
+
 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
 
        * gcc.dg/tree-ssa/loop-2.c: New test.
index dc8eee19d2fff3ba8c4346ceaad2a6f50e421a84..3ac7cb4772f3d372ef216c3599ab110e24ceb240 100644 (file)
@@ -70,5 +70,9 @@ program edit_real_1
   s = x
   write (s, '(-2PE10.4,A)') 1.25, "z"
   if (s .ne. '0.0013E+03z') call abort
+  ! E format, single digit precision
+  s = x
+  write (s, '(E10.1,A)') 1.1, "z"
+  if (s .ne. '   0.1E+01z') call abort
 end
 
index f4d888e50d246734b4e1fa25ee924dfccc42b8eb..2392b3ca1b2a8282b98b66c702740ef09acc6394 100644 (file)
@@ -292,7 +292,7 @@ output_float (fnode *f, double value, int len)
 
   /* Use sprintf to print the number in the format +D.DDDDe+ddd
      For an N digit exponent, this gives us (32-6)-N digits after the
-     decimal point, plus annother one before the decimal point.  */
+     decimal point, plus another one before the decimal point.  */
   sign = calculate_sign (value < 0.0);
   if (value < 0)
     value = -value;
@@ -325,14 +325,11 @@ output_float (fnode *f, double value, int len)
        ndigits = 27 - edigits;
     }
 
-  sprintf (buffer, "%+-31.*e", ndigits - 1, value);
+  sprintf (buffer, "%+-#31.*e", ndigits - 1, value);
   
   /* Check the resulting string has punctuation in the correct places.  */
   if (buffer[2] != '.' || buffer[ndigits + 2] != 'e')
-    {
-      printf ("'%s', %d\n", buffer, ndigits);
       internal_error ("printf is broken");
-    }
 
   /* Read the exponent back in.  */
   e = atoi (&buffer[ndigits + 3]) + 1;