aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/io/io.h
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2014-01-11 18:57:20 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2014-01-11 18:57:20 +0000
commit2558e2e838790ef1441788c0ba4c14e1bf061b55 (patch)
tree7ee42a08f421ada38d46c6736afc7fd555ce17a2 /libgfortran/io/io.h
parent2c4074268983c92c1c8554b591a6877b4e92d7bb (diff)
downloadgcc-2558e2e838790ef1441788c0ba4c14e1bf061b55.zip
gcc-2558e2e838790ef1441788c0ba4c14e1bf061b55.tar.gz
gcc-2558e2e838790ef1441788c0ba4c14e1bf061b55.tar.bz2
re PR fortran/59700 (Misleading/buggy runtime error message: Bad integer for item 0 in list input)
2014-01-11 Jerry DeLisle <jvdelisle@gcc.gnu> Dominique d'Humieres <dominiq@lps.ens.fr> Steven G. Kargl <kargl@gcc.gnu.org> PR libfortran/59700 PR libfortran/59764 * io/io.h (struct st_parameter_dt): Assign expanded_read flag to unused bit. Define new variable line_buffer_pos. * io/list_read.c (free_saved, next_char, l_push_char, read_logical, read_real): Replace use of item_count with line_buffer_pos for line_buffer look ahead. (read_logical, read_integer, parse_real, read_real, check_type): Adjust location of free_line to after generating error messages to retain the correct item count for the message. Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr> Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org> From-SVN: r206553
Diffstat (limited to 'libgfortran/io/io.h')
-rw-r--r--libgfortran/io/io.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h
index 97f7a6a..3481c83 100644
--- a/libgfortran/io/io.h
+++ b/libgfortran/io/io.h
@@ -430,7 +430,10 @@ typedef struct st_parameter_dt
unsigned g0_no_blanks : 1;
/* Used to signal use of free_format_data. */
unsigned format_not_saved : 1;
- /* 14 unused bits. */
+ /* A flag used to identify when a non-standard expanded namelist read
+ has occurred. */
+ unsigned expanded_read : 1;
+ /* 13 unused bits. */
/* Used for ungetc() style functionality. Possible values
are an unsigned char, EOF, or EOF - 1 used to mark the
@@ -447,9 +450,8 @@ typedef struct st_parameter_dt
char *line_buffer;
struct format_data *fmt;
namelist_info *ionml;
- /* A flag used to identify when a non-standard expanded namelist read
- has occurred. */
- int expanded_read;
+ /* Current position within the look-ahead line buffer. */
+ int line_buffer_pos;
/* Storage area for values except for strings. Must be
large enough to hold a complex value (two reals) of the
largest kind. */