aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2011-01-05 03:53:15 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2011-01-05 03:53:15 +0000
commit43e0224a586befa508ad3cd9d8e8e56cb52f1645 (patch)
tree200efba9c2ed5052004bffac83c082ad1723f34d /libgfortran
parent535e081a5ac4ebffc1fce83745605d85a3aafcc6 (diff)
downloadgcc-43e0224a586befa508ad3cd9d8e8e56cb52f1645.zip
gcc-43e0224a586befa508ad3cd9d8e8e56cb52f1645.tar.gz
gcc-43e0224a586befa508ad3cd9d8e8e56cb52f1645.tar.bz2
re PR libfortran/47154 (END= does not work in namelist read)
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. From-SVN: r168502
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog6
-rw-r--r--libgfortran/io/list_read.c20
2 files changed, 14 insertions, 12 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index a3aa49d..6f116bd 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -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.
+
Copyright (C) 2011 Free Software Foundation, Inc.
diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c
index 5203bb7..9f8555a 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);