re PR fortran/27634 (formatted reading/writing: real format without dot)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Mon, 29 May 2006 19:28:48 +0000 (19:28 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Mon, 29 May 2006 19:28:48 +0000 (19:28 +0000)
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
libgfortran/io/format.c

index 50ebaf230c06b4400adc82fc8f80d4a97769395e..3ecabcd06abe2ccc27503539a3af3fabf4bb4eb6 100644 (file)
@@ -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):
index 96d7019eedcdf59e136892bd9e415ea4ed20c17e..5af5c6e8bdea56cacb0c776e773971578c528bad 100644 (file)
@@ -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);