From: jvdelisle Date: Wed, 5 Jan 2011 03:53:15 +0000 (+0000) Subject: 2011-01-04 Jerry DeLisle X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=1c7543d0b408ca76b5ec4a8dd4d6cafbffde88d4 2011-01-04 Jerry DeLisle 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 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index a3aa49dbcbf..6f116bd969e 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2011-01-04 Jerry DeLisle + + PR libgfortran/47154 + * io/list_read.c (namelist_read): Remove calls to hit_eof to avoid the + duplicate calls via next_record. + Copyright (C) 2011 Free Software Foundation, Inc. diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index 5203bb76c50..9f8555ac8f4 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -2984,8 +2984,7 @@ namelist_read (st_parameter_dt *dtp) 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 '$': @@ -2993,13 +2992,11 @@ find_nml_name: break; case '!': - if (eat_line (dtp)) - goto nml_err_eof; + eat_line (dtp); 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 @@ -3009,6 +3006,9 @@ find_nml_name: case '?': nml_query (dtp, '?'); + case EOF: + return; + 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. */ - if ((c = next_char (dtp)) == EOF) - goto nml_err_eof; + c = next_char (dtp); if (!is_separator(c) && c != '!') { unget_char (dtp, c); @@ -3050,13 +3049,10 @@ find_nml_name: free_line (dtp); return; - /* All namelist error calls return from here */ - -nml_err_eof: - hit_eof (dtp); 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);