aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-stmt.c
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/fortran/trans-stmt.c
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/fortran/trans-stmt.c')
-rw-r--r--gcc/fortran/trans-stmt.c4
1 files changed, 4 insertions, 0 deletions
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. */