From 69d672661199f44e483a2cba4d1543f4e46a0201 Mon Sep 17 00:00:00 2001
From: jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 4 Apr 2006 02:50:23 +0000
Subject: [PATCH] 2006-04-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* io/write.c (output_float): Update condition to not error when
	decimal precision in format specifier is zero.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112656 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libgfortran/ChangeLog  | 5 +++++
 libgfortran/io/write.c | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index e3c5bbb5aad0..280f520af31f 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2006-04-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	* io/write.c (output_float): Update condition to not error when
+	decimal precision in format specifier is zero.
+
 2006-04-01  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
 
 	* config/fpu-387.h: Use previously added SSE code in all
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c
index edd2933c3de1..39192dde7cdd 100644
--- a/libgfortran/io/write.c
+++ b/libgfortran/io/write.c
@@ -473,7 +473,7 @@ output_float (st_parameter_dt *dtp, const fnode *f, GFC_REAL_LARGEST value)
            ndigits - 1, value);
 
   /* Check the resulting string has punctuation in the correct places.  */
-  if (buffer[2] != '.' || buffer[ndigits + 2] != 'e')
+  if (d != 0 && (buffer[2] != '.' || buffer[ndigits + 2] != 'e'))
       internal_error (&dtp->common, "printf is broken");
 
   /* Read the exponent back in.  */
-- 
GitLab