From a7a8dddd9946fcdba42bc4a65956c8c575a36db5 Mon Sep 17 00:00:00 2001
From: Jerry DeLisle <jvdelisle@gcc.gnu.org>
Date: Mon, 29 May 2006 19:28:48 +0000
Subject: [PATCH] re PR fortran/27634 (formatted reading/writing: real format
 without dot)

2006-05-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/27634
	* io/format.c (parse_format_list): Allow missing period in format only
	if -std=legacy.

From-SVN: r114212
---
 libgfortran/ChangeLog   |  6 ++++++
 libgfortran/io/format.c | 12 ++++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 50ebaf230c06..3ecabcd06abe 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,9 @@
+2006-05-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR libgfortran/27634
+	* io/format.c (parse_format_list): Allow missing period in format only
+	if -std=legacy.
+
 2006-05-28  Thomas Koenig  <Thomas.Koenig@online.de>
 
 	* intrinsics/string_intrinsics.c (compare_string):
diff --git a/libgfortran/io/format.c b/libgfortran/io/format.c
index 96d7019eedcd..5af5c6e8bdea 100644
--- a/libgfortran/io/format.c
+++ b/libgfortran/io/format.c
@@ -725,8 +725,16 @@ parse_format_list (st_parameter_dt *dtp)
       t = format_lex (fmt);
       if (t != FMT_PERIOD)
 	{
-	  fmt->error = period_required;
-	  goto finished;
+	  /* We treat a missing decimal descriptor as 0.  Note: This is only
+	     allowed if -std=legacy, otherwise an error occurs.  */
+	  if (compile_options.warn_std != 0)
+	    {
+	      fmt->error = period_required;
+	      goto finished;
+	    }
+	  fmt->saved_token = t;
+	  tail->u.real.d = 0;
+	  break;
 	}
 
       t = format_lex (fmt);
-- 
GitLab