diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2009-03-24 12:24:29 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2009-03-24 12:24:29 +0000 |
commit | b710b6bc87e76ca14deb301997af288716f44960 (patch) | |
tree | 6e109857c42d78192a7a81ae395c4e9ca1a88426 | |
parent | 09ac4473280febdcf2836aa234bc04152bc450c9 (diff) | |
download | gcc-b710b6bc87e76ca14deb301997af288716f44960.zip gcc-b710b6bc87e76ca14deb301997af288716f44960.tar.gz gcc-b710b6bc87e76ca14deb301997af288716f44960.tar.bz2 |
re PR fortran/39528 (repeated entries are not read when using list-directed input)
2009-03-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/39528
* io/list_read.c (list_formatted_read_scalar): Move check for read
completion to just after the check for a repeated value.
From-SVN: r145030
-rw-r--r-- | libgfortran/ChangeLog | 6 | ||||
-rw-r--r-- | libgfortran/io/list_read.c | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 4613306..5002806 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2009-03-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libfortran/39528 + * io/list_read.c (list_formatted_read_scalar): Move check for read + completion to just after the check for a repeated value. + 2009-03-08 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/39402 diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index 1f1023c..6b22d34 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008 +/* Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc. Contributed by Andy Vaught Namelist input contributed by Paul Thomas @@ -1720,9 +1720,6 @@ list_formatted_read_scalar (st_parameter_dt *dtp, volatile bt type, void *p, } else { - if (dtp->u.p.input_complete) - goto cleanup; - if (dtp->u.p.repeat_count > 0) { if (check_type (dtp, type, kind)) @@ -1730,6 +1727,9 @@ list_formatted_read_scalar (st_parameter_dt *dtp, volatile bt type, void *p, goto set_value; } + if (dtp->u.p.input_complete) + goto cleanup; + if (dtp->u.p.at_eol) finish_separator (dtp); else |