summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gfortran.dg/pr18025.f908
-rw-r--r--libgfortran/ChangeLog6
-rw-r--r--libgfortran/io/write.c2
4 files changed, 19 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 84a73de14e3..465d516f451 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2005-03-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * pr18025.f90: New test.
+
2005-03-23 Dale Johannesen <dalej@apple.com>
* gcc.dg/20020312-2.c: Fix for non-PowerPC Darwin.
diff --git a/gcc/testsuite/gfortran.dg/pr18025.f90 b/gcc/testsuite/gfortran.dg/pr18025.f90
new file mode 100644
index 00000000000..69a6af6ffa9
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr18025.f90
@@ -0,0 +1,8 @@
+! PR libfortran/18025 <coudert@clipper.ens.fr>
+! {dg-do run}
+ character(len=80) :: c
+ write(c, "('#',F0.2,'#')") 1.23
+ if (c /= '#1.23#') call abort
+ write(c, "('#',F0.2,'#')") -1.23
+ if (c /= '#-1.23#') call abort
+ end
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index c32ca525b43..a3964b702ff 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,9 @@
+2005-02-27 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/18025
+ * write.c (output_float): Handling the "F0.d" format similarly as
+ commercial compilers.
+
2005-03-22 Francois-Xavier Coudert <coudert@clipper.ens.fr>
* Makefile.am: Added new files.
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c
index 88e5280b338..d22aa344b05 100644
--- a/libgfortran/io/write.c
+++ b/libgfortran/io/write.c
@@ -537,7 +537,7 @@ output_float (fnode *f, double value, int len)
/* Pick a field size if none was specified. */
if (w <= 0)
- w = nbefore + nzero + nafter + 2;
+ w = nbefore + nzero + nafter + (sign != SIGN_NONE ? 2 : 1)
/* Create the ouput buffer. */
out = write_block (w);