aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-05-22 09:27:15 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-05-22 09:27:15 +0000
commitc099916d6224e9775b4a43969901ed8688f32e5b (patch)
tree902c9ac4700d6fbdc15aa8bef964cdf2350134dd /gcc/testsuite
parent0f869709401ddaf2fac3bb2fcd58f998a69fc8f4 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/bounds_check_7.f9015
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" }