OSDN Git Service

2009-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Oct 2009 00:52:45 +0000 (00:52 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Oct 2009 00:52:45 +0000 (00:52 +0000)
PR libgfortran/38439
* io/format.c (parse_format_list): Correct logic for FMT_F reading vs
writing. Code clean-up.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152657 138bc75d-0d04-0410-961f-82ee72b054a4

libgfortran/ChangeLog
libgfortran/io/format.c

index 0984287..b7c75e0 100644 (file)
@@ -1,6 +1,12 @@
 2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libgfortran/38439
+       * io/format.c (parse_format_list): Correct logic for FMT_F reading vs
+       writing. Code clean-up.
+
+2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/38439
        * io/format.c (parse_format_list): Add check for tokens not allowed
        after P specifier. Fix comments.  Remove un-needed code. Fix the
        default exponent list. Correct pointer assignment error.
index 7e46e3a..97bd2da 100644 (file)
@@ -933,7 +933,7 @@ parse_format_list (st_parameter_dt *dtp, bool *save_ok)
          tail->u.real.d = fmt->value;
          break;
        }
-      if (t == FMT_F || dtp->u.p.mode == WRITING)
+      if (t == FMT_F && dtp->u.p.mode == WRITING)
        {
          if (u != FMT_POSINT && u != FMT_ZERO)
            {
@@ -941,13 +941,10 @@ parse_format_list (st_parameter_dt *dtp, bool *save_ok)
              goto finished;
            }
        }
-      else
+      else if (u != FMT_POSINT)
        {
-         if (u != FMT_POSINT)
-           {
-             fmt->error = posint_required;
-             goto finished;
-           }
+         fmt->error = posint_required;
+         goto finished;
        }
 
       tail->u.real.w = fmt->value;