OSDN Git Service

2011-01-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Jan 2011 03:53:15 +0000 (03:53 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Jan 2011 03:53:15 +0000 (03:53 +0000)
PR libgfortran/47154
* io/list_read.c (namelist_read): Remove calls to hit_eof to avoid the
duplicate calls via next_record.

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

libgfortran/ChangeLog
libgfortran/io/list_read.c

index a3aa49d..6f116bd 100644 (file)
@@ -1,3 +1,9 @@
+2011-01-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/47154
+       * io/list_read.c (namelist_read): Remove calls to hit_eof to avoid the
+       duplicate calls via next_record.
+
 \f
 Copyright (C) 2011 Free Software Foundation, Inc.
 
 \f
 Copyright (C) 2011 Free Software Foundation, Inc.
 
index 5203bb7..9f8555a 100644 (file)
@@ -2984,8 +2984,7 @@ namelist_read (st_parameter_dt *dtp)
      node names or namelist on stdout.  */
 
 find_nml_name:
      node names or namelist on stdout.  */
 
 find_nml_name:
-  if ((c = next_char (dtp)) == EOF)
-    goto nml_err_eof;
+  c = next_char (dtp);
   switch (c)
     {
     case '$':
   switch (c)
     {
     case '$':
@@ -2993,13 +2992,11 @@ find_nml_name:
           break;
 
     case '!':
           break;
 
     case '!':
-      if (eat_line (dtp))
-       goto nml_err_eof;
+      eat_line (dtp);
       goto find_nml_name;
 
     case '=':
       goto find_nml_name;
 
     case '=':
-      if ((c = next_char (dtp)) == EOF)
-       goto nml_err_eof;
+      c = next_char (dtp);
       if (c == '?')
        nml_query (dtp, '=');
       else
       if (c == '?')
        nml_query (dtp, '=');
       else
@@ -3009,6 +3006,9 @@ find_nml_name:
     case '?':
       nml_query (dtp, '?');
 
     case '?':
       nml_query (dtp, '?');
 
+    case EOF:
+      return;
+
     default:
       goto find_nml_name;
     }
     default:
       goto find_nml_name;
     }
@@ -3021,8 +3021,7 @@ find_nml_name:
     goto find_nml_name;
 
   /* A trailing space is required, we give a little lattitude here, 10.9.1.  */ 
     goto find_nml_name;
 
   /* A trailing space is required, we give a little lattitude here, 10.9.1.  */ 
-  if ((c = next_char (dtp)) == EOF)
-    goto nml_err_eof;
+  c = next_char (dtp);
   if (!is_separator(c) && c != '!')
     {
       unget_char (dtp, c);
   if (!is_separator(c) && c != '!')
     {
       unget_char (dtp, c);
@@ -3050,13 +3049,10 @@ find_nml_name:
   free_line (dtp);
   return;
 
   free_line (dtp);
   return;
 
-  /* All namelist error calls return from here */
-
-nml_err_eof:
-  hit_eof (dtp);
 
 nml_err_ret:
 
 
 nml_err_ret:
 
+  /* All namelist error calls return from here */
   free_saved (dtp);
   free_line (dtp);
   generate_error (&dtp->common, LIBERROR_READ_VALUE, nml_err_msg);
   free_saved (dtp);
   free_line (dtp);
   generate_error (&dtp->common, LIBERROR_READ_VALUE, nml_err_msg);