aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/runtime
diff options
context:
space:
mode:
authorJanne Blomqvist <jb@gcc.gnu.org>2012-05-14 22:39:23 +0300
committerJanne Blomqvist <jb@gcc.gnu.org>2012-05-14 22:39:23 +0300
commit80b91c0b39e7d65e3d89e49b5bf2ec40927f5a33 (patch)
tree1b4a3a8d4b65ec8d0a88de4f00b90d28ce493090 /libgfortran/runtime
parentf62866740b93747b2d3f1dd4d4637e6890e0fa22 (diff)
downloadgcc-80b91c0b39e7d65e3d89e49b5bf2ec40927f5a33.zip
gcc-80b91c0b39e7d65e3d89e49b5bf2ec40927f5a33.tar.gz
gcc-80b91c0b39e7d65e3d89e49b5bf2ec40927f5a33.tar.bz2
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. From-SVN: r187478
Diffstat (limited to 'libgfortran/runtime')
-rw-r--r--libgfortran/runtime/compile_options.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libgfortran/runtime/compile_options.c b/libgfortran/runtime/compile_options.c
index 0e657f7..2ba1aed 100644
--- a/libgfortran/runtime/compile_options.c
+++ b/libgfortran/runtime/compile_options.c
@@ -169,8 +169,10 @@ set_options (int num, int options[])
compile_options.sign_zero = options[5];
if (num >= 7)
compile_options.bounds_check = options[6];
- if (num >= 8)
- compile_options.range_check = options[7];
+ /* options[7] is the -frange-check option, which no longer affects
+ the library behavior; range checking is now always done when
+ parsing integers. It's place in the options array is retained due
+ to ABI compatibility. Remove when bumping the library ABI. */
/* If backtrace is required, we set signal handlers on the POSIX
2001 signals with core action. */
@@ -223,7 +225,6 @@ init_compile_options (void)
compile_options.pedantic = 0;
compile_options.backtrace = 0;
compile_options.sign_zero = 1;
- compile_options.range_check = 1;
}
/* Function called by the front-end to tell us the