aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <coudert@clipper.ens.fr>2006-05-27 11:41:42 +0200
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2006-05-27 09:41:42 +0000
commit7936f3e337aca78ec76497c598b4ecef7bb2123e (patch)
tree0a6f6da968945705bd677fac17b6d37a709d3603
parent59c0928b6ae0a194833640c15905ff3aa26c54e7 (diff)
downloadgcc-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
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-array.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/bounds_check_2.f23
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