aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <coudert@clipper.ens.fr>2006-07-06 19:12:25 +0200
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2006-07-06 17:12:25 +0000
commitca86ddcc240fe3ff90d570a385429dad8eedf846 (patch)
tree9cbdb06ade3d724d77b4168f92c1daa9641af36a /gcc
parent80f06e289befc1323bce6dc8f619937046fe124d (diff)
downloadgcc-ca86ddcc240fe3ff90d570a385429dad8eedf846.zip
gcc-ca86ddcc240fe3ff90d570a385429dad8eedf846.tar.gz
gcc-ca86ddcc240fe3ff90d570a385429dad8eedf846.tar.bz2
re PR fortran/27874 (Bad interaction between bounds checking, forall and derived types)
PR fortran/27874 * trans-stmt.c (compute_inner_temp_size): Don't perform bounds checking when calculating the bounds of scalarization. From-SVN: r115224
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-stmt.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index e67b9bb..38be155 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2006-07-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR fortran/27874
+ * trans-stmt.c (compute_inner_temp_size): Don't perform bounds
+ checking when calculating the bounds of scalarization.
+
2006-07-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR fortran/20892
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 4e2f0fd..a123166 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -1957,6 +1957,7 @@ compute_inner_temp_size (gfc_expr *expr1, gfc_expr *expr2,
gfc_loopinfo loop;
tree size;
int i;
+ int save_flag;
tree tmp;
*lss = gfc_walk_expr (expr1);
@@ -1989,7 +1990,10 @@ compute_inner_temp_size (gfc_expr *expr1, gfc_expr *expr2,
loop.array_parameter = 1;
/* Calculate the bounds of the scalarization. */
+ save_flag = flag_bounds_check;
+ flag_bounds_check = 0;
gfc_conv_ss_startstride (&loop);
+ flag_bounds_check = save_flag;
gfc_conv_loop_setup (&loop);
/* Figure out how many elements we need. */