diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2013-12-18 23:41:50 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2013-12-18 23:41:50 +0000 |
commit | 7b6b435332b4978cc4404727b2ff20eb893793ed (patch) | |
tree | 1e776afa6fac07f4b4fb0e27afd980654b8f3b63 | |
parent | 7289d1c97783c40ead8e74d6137e2dddc0d59e30 (diff) | |
download | gcc-7b6b435332b4978cc4404727b2ff20eb893793ed.zip gcc-7b6b435332b4978cc4404727b2ff20eb893793ed.tar.gz gcc-7b6b435332b4978cc4404727b2ff20eb893793ed.tar.bz2 |
read.c (read_f): Convert assert to runtime error.
2013-12-18 Steven G. Kargl <kargl@gcc.gnu.org>
* io/read.c (read_f): Convert assert to runtime error.
2013-12-18 Steven G. Kargl <kargl@gcc.gnu.org>
* gfortran.dg/io_err_1.f90: New test.
From-SVN: r206102
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/io_err_1.f90 | 14 | ||||
-rw-r--r-- | libgfortran/ChangeLog | 4 | ||||
-rw-r--r-- | libgfortran/io/read.c | 4 |
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f4e055f..2ba0cbf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2013-12-18 Steven G. Kargl <kargl@gcc.gnu.org> + + * gfortran.dg/io_err_1.f90: New test. + 2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-c++-common/cilk-plus/SE/ef_test.c: New test. diff --git a/gcc/testsuite/gfortran.dg/io_err_1.f90 b/gcc/testsuite/gfortran.dg/io_err_1.f90 new file mode 100644 index 0000000..4159a04 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/io_err_1.f90 @@ -0,0 +1,14 @@ +! { dg-do run } +! { dg-shouldfail "Compile-time specifier checking" } +! +! Contributed by Dominique Dhumieres <dominiq at lps dot ens dot fr> +program read + character(50) :: buf='0.D99999' + double precision val + read (UNIT=buf, FMT='(D60.0)', ERR=10) Val + call abort +10 read (UNIT=buf, FMT='(D60.0)') Val +end program read +! { dg-output "At line 10 of file.*" } +! { dg-output "Fortran runtime error: Bad value during floating point read" } + diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 309712c..7bfb2c1 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,7 @@ +2013-12-18 Steven G. Kargl <kargl@gcc.gnu.org> + + * io/read.c (read_f): Convert assert to runtime error. + 2013-12-17 Andreas Tobler <andreast@gcc.gnu.org> * io/unix.c (tempfile_open): Only use the needed flag O_CLOEXEC. diff --git a/libgfortran/io/read.c b/libgfortran/io/read.c index e35b1a0..f0de14c 100644 --- a/libgfortran/io/read.c +++ b/libgfortran/io/read.c @@ -1150,7 +1150,9 @@ done: exponent = - exponent; } - assert (exponent < 10000); + if (exponent >= 10000) + goto bad_float; + for (dig = 3; dig >= 0; --dig) { out[dig] = (char) ('0' + exponent % 10); |