diff options
author | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-12-11 03:49:52 +0000 |
---|---|---|
committer | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-12-11 03:49:52 +0000 |
commit | 702a1c4e1339d54be5ed68e3ab04c051dc7d3d99 (patch) | |
tree | c68aa3b52f8823046ab599afd408349d1ce385c8 /libgfortran/io/read.c | |
parent | 0d8705f454cfb048e50e6d819bfc169b8766ff6e (diff) | |
download | gcc-702a1c4e1339d54be5ed68e3ab04c051dc7d3d99.tar.gz |
2007-12-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/34411
* io/read.c (convert_real, read_l, read_decimal, read_radix, read_f):
Call next_record after bad read or overflow error.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130767 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/io/read.c')
-rw-r--r-- | libgfortran/io/read.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libgfortran/io/read.c b/libgfortran/io/read.c index 8baa3576af8..b5f16ac7260 100644 --- a/libgfortran/io/read.c +++ b/libgfortran/io/read.c @@ -177,6 +177,7 @@ convert_real (st_parameter_dt *dtp, void *dest, const char *buffer, int length) { generate_error (&dtp->common, LIBERROR_READ_VALUE, "Error during floating point read"); + next_record (dtp, 1); return 1; } @@ -225,6 +226,7 @@ read_l (st_parameter_dt *dtp, const fnode *f, char *dest, int length) bad: generate_error (&dtp->common, LIBERROR_READ_VALUE, "Bad value on logical read"); + next_record (dtp, 1); break; } } @@ -395,11 +397,13 @@ read_decimal (st_parameter_dt *dtp, const fnode *f, char *dest, int length) bad: generate_error (&dtp->common, LIBERROR_READ_VALUE, "Bad value during integer read"); + next_record (dtp, 1); return; overflow: generate_error (&dtp->common, LIBERROR_READ_OVERFLOW, "Value overflowed during integer read"); + next_record (dtp, 1); return; } @@ -539,11 +543,13 @@ read_radix (st_parameter_dt *dtp, const fnode *f, char *dest, int length, bad: generate_error (&dtp->common, LIBERROR_READ_VALUE, "Bad value during integer read"); + next_record (dtp, 1); return; overflow: generate_error (&dtp->common, LIBERROR_READ_OVERFLOW, "Value overflowed during integer read"); + next_record (dtp, 1); return; } @@ -659,6 +665,7 @@ read_f (st_parameter_dt *dtp, const fnode *f, char *dest, int length) bad_float: generate_error (&dtp->common, LIBERROR_READ_VALUE, "Bad value during floating point read"); + next_record (dtp, 1); return; /* The value read is zero */ |