re PR fortran/27786 ([4.1 only] Bad interaction between Cray pointer, assumed-size...
authorAsher Langton <langton2@llnl.gov>
Thu, 8 Jun 2006 21:00:26 +0000 (21:00 +0000)
committerAsher Langton <langton@gcc.gnu.org>
Thu, 8 Jun 2006 21:00:26 +0000 (21:00 +0000)
* cray_pointers_2.f90: Add -fbounds-check compile flag.

PR fortran/27786
* trans-array.c (gfc_conv_array_ref): Eliminate bounds checking
for assumed-size Cray pointees.

From-SVN: r114495

gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/cray_pointers_2.f90

index 26fcf19b4f865e29bdb486b25d62e9654923e112..e2a4aafa2434e3310ec0ceaa781da3de9bedb01d 100644 (file)
@@ -1,3 +1,9 @@
+2006-06-08  Asher Langton  <langton2@llnl.gov>
+       
+       PR fortran/27786
+       * trans-array.c (gfc_conv_array_ref): Eliminate bounds checking
+       for assumed-size Cray pointees.
+
 2006-06-08  Steven G. Kargl  <kargls@comcat.net>
 
        * intrinsic.c (add_subroutine):  Make make_noreturn() conditional on
index 26d5febaa4ab92b62b1913256e1530c47cf5c5f4..e3719a889fa516a9ecadbe84a231b9c5412e4bf8 100644 (file)
@@ -1964,7 +1964,8 @@ gfc_conv_array_ref (gfc_se * se, gfc_array_ref * ar, gfc_symbol * sym,
       gfc_add_block_to_block (&se->pre, &indexse.pre);
 
       if (flag_bounds_check &&
-         (ar->as->type != AS_ASSUMED_SIZE  || n < ar->dimen - 1))
+         ((ar->as->type != AS_ASSUMED_SIZE && !ar->as->cp_was_assumed)
+          || n < ar->dimen - 1))
        {
          /* Check array bounds.  */
          tree cond;
index 1d5b76aec01a2eff36d0f967e02a7df9c31f6d93..a5455d99d9a3f04512a4363f0333bc97452071cf 100644 (file)
@@ -1,3 +1,8 @@
+2006-06-08  Asher Langton  <langton2@llnl.gov>
+       
+       PR fortran/27786
+       * cray_pointers_2.f90: Add -fbounds-check compile flag.
+       
 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
        PR target/27421
index 7c958d57b0a0242c63eff31d04abfcc293b70444..42cdf9b0b486b3a6e30fac08a72e4cdc069ba641 100644 (file)
@@ -1,5 +1,5 @@
 ! { dg-do run }
-! { dg-options "-fcray-pointer" }
+! { dg-options "-fcray-pointer -fbounds-check" }
 ! Series of routines for testing a Cray pointer implementation
 program craytest
   common /errors/errors(400)