diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-05-22 09:27:15 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-05-22 09:27:15 +0000 |
commit | c099916d6224e9775b4a43969901ed8688f32e5b (patch) | |
tree | 902c9ac4700d6fbdc15aa8bef964cdf2350134dd /gcc/testsuite | |
parent | 0f869709401ddaf2fac3bb2fcd58f998a69fc8f4 (diff) | |
download | gcc-c099916d6224e9775b4a43969901ed8688f32e5b.zip gcc-c099916d6224e9775b4a43969901ed8688f32e5b.tar.gz gcc-c099916d6224e9775b4a43969901ed8688f32e5b.tar.bz2 |
re PR fortran/31627 ([4.1/4.2 only] -bounds-check doesn't check lower bound of assumed-sized array)
PR fortran/31627
* trans-array.c (gfc_trans_array_bound_check): Take extra argument to
indicate whether we should check the upper bound in that dimension.
(gfc_conv_array_index_offset): Check only the lower bound of the
last dimension for assumed-size arrays.
(gfc_conv_array_ref): Likewise.
(gfc_conv_ss_startstride): Likewise.
* gfortran.dg/bounds_check_7.f90: New test.
From-SVN: r124940
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/bounds_check_7.f90 | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 13cc9a5..c27bbe1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-05-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + PR fortran/31627 + * gfortran.dg/bounds_check_7.f90: New test. + 2007-05-22 Uros Bizjak <ubizjak@gmail.com> * gcc.target/i386/i386.exp (check_effective_target_ssse3): New. diff --git a/gcc/testsuite/gfortran.dg/bounds_check_7.f90 b/gcc/testsuite/gfortran.dg/bounds_check_7.f90 new file mode 100644 index 0000000..362cc66 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/bounds_check_7.f90 @@ -0,0 +1,15 @@ +! { dg-do run } +! { dg-options "-fbounds-check" } +! { dg-shouldfail "Array reference out of bounds" } +! PR fortran/31627 +subroutine foo(a) + integer a(*), i + i = 0 + a(i) = 42 ! { +end subroutine foo + +program test + integer x(42) + call foo(x) +end program test +! { dg-output "Array reference out of bounds .* lower bound of dimension 1 exceeded" } |