PR 52428 Range checking when reading integer values.
commit7f4f15dc761b8c76f3945354b6069daa7c63b4a8
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 May 2012 19:39:23 +0000 (14 19:39 +0000)
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 May 2012 19:39:23 +0000 (14 19:39 +0000)
tree1b4a3a8d4b65ec8d0a88de4f00b90d28ce493090
parent5dc7473db4e0ec618caae0858c1ccbb395b06213
PR 52428 Range checking when reading integer values.

gcc/fortran ChangeLog:

2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/52428
* gfortran.texi: Update _gfortran_set_options documentation.
* invoke.texi: Remove runtime behavior description of
-fno-range-check.
* trans-decl.c (create_main_function): Don't pass the range-check
setting to the library.

libgfortran ChangeLog:

2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/52428
* io/io.h (max_value): Rename to si_max, remove second argument.
* io/list_read.c (convert_integer): Use unsigned types when
parsing the digits, set max value depending on the sign.
* io/read.c (max_value): Rename to si_max, remove second argument,
simplify.
(read_decimal): Set max value depending on sign, always check
overflow.
(read_radix): Calculate max unsigned value directly.
* libgfortran.h (struct compile_options_t): Remove range_check
field.
* runtime/compile_options.c (set_options): Skip handling
options[7].
(init_compile_options): Don't set removed field.

gcc/testsuite ChangeLog:

2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/52428
* gfortran.dg/int_range_io_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187478 138bc75d-0d04-0410-961f-82ee72b054a4
12 files changed:
gcc/fortran/ChangeLog
gcc/fortran/gfortran.texi
gcc/fortran/invoke.texi
gcc/fortran/trans-decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/int_range_io_1.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/io/io.h
libgfortran/io/list_read.c
libgfortran/io/read.c
libgfortran/libgfortran.h
libgfortran/runtime/compile_options.c