diff options
author | Francois-Xavier Coudert <coudert@clipper.ens.fr> | 2006-05-27 11:41:42 +0200 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2006-05-27 09:41:42 +0000 |
commit | 7936f3e337aca78ec76497c598b4ecef7bb2123e (patch) | |
tree | 0a6f6da968945705bd677fac17b6d37a709d3603 /gcc | |
parent | 59c0928b6ae0a194833640c15905ff3aa26c54e7 (diff) | |
download | gcc-7936f3e337aca78ec76497c598b4ecef7bb2123e.zip gcc-7936f3e337aca78ec76497c598b4ecef7bb2123e.tar.gz gcc-7936f3e337aca78ec76497c598b4ecef7bb2123e.tar.bz2 |
re PR fortran/19777 (-fbounds-check catches non-existent bounds violation)
PR fortran/19777
* trans-array.c (gfc_conv_array_ref): Don't perform out-of-bounds
checking for assumed-size arrrays.
* gfortran.dg/bounds_check_2.f: New test.
From-SVN: r114153
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-array.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/bounds_check_2.f | 23 |
4 files changed, 35 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 1878311..c5a0c0a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2006-05-27 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/19777 + * trans-array.c (gfc_conv_array_ref): Don't perform out-of-bounds + checking for assumed-size arrrays. + 2006-05-27 Paul Thomas <pault@gcc.gnu.org> * trans-intrinsic.c (gfc_conv_associated): If pointer in first diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 34742c3..737beef 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -1948,7 +1948,7 @@ gfc_conv_array_ref (gfc_se * se, gfc_array_ref * ar) gfc_conv_expr_type (&indexse, ar->start[n], gfc_array_index_type); gfc_add_block_to_block (&se->pre, &indexse.pre); - if (flag_bounds_check) + if (flag_bounds_check && ar->as->type != AS_ASSUMED_SIZE) { /* Check array bounds. */ tree cond; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 07b8fbe..78c926e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-05-27 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/19777 + * gfortran.dg/bounds_check_2.f: New test. + 2006-05-27 Janne Blomqvist <jb@gcc.gnu.org> * gfortran.dg/hollerith_f95.f90: Add -fall-intrinsics. diff --git a/gcc/testsuite/gfortran.dg/bounds_check_2.f b/gcc/testsuite/gfortran.dg/bounds_check_2.f new file mode 100644 index 0000000..0160723 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/bounds_check_2.f @@ -0,0 +1,23 @@ +! { dg-do run } +! { dg-options "-fbounds-check" } +! PR fortran/19777 + implicit none + integer npts + parameter (npts=10) + double precision v(npts) + external init1 + + call init1 (npts, v) + end + + subroutine init1 (npts, v) + implicit none + integer npts + double precision v(*) + + integer i + + do 10 i = 1, npts + v(i) = 0 + 10 continue + end |