aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-stmt.c
diff options
context:
space:
mode:
authorTobias Schlüter <tobi@gcc.gnu.org>2005-06-13 20:23:46 +0200
committerTobias Schlüter <tobi@gcc.gnu.org>2005-06-13 20:23:46 +0200
commita8e12e4d7509326a298a3ddd39fb0d2746811ff2 (patch)
treed05e6ea1595ad1c2e3368a674755ed1c871d483b /gcc/fortran/trans-stmt.c
parent8fe4d24bebd6df659ab43ad5dd065a29c473f815 (diff)
downloadgcc-a8e12e4d7509326a298a3ddd39fb0d2746811ff2.zip
gcc-a8e12e4d7509326a298a3ddd39fb0d2746811ff2.tar.gz
gcc-a8e12e4d7509326a298a3ddd39fb0d2746811ff2.tar.bz2
re PR fortran/22038 (Forall with mask broken)
fortran/ 2005-06-13 Jakub Jelinek <jakub@redhat.com> PR fortran/22038 * trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex in the innermost loop. testsuite/ 2005-06-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de> PR fortran/22038 * gfortran.dg/forall_1.f90: Un-XFAIL. From-SVN: r100887
Diffstat (limited to 'gcc/fortran/trans-stmt.c')
-rw-r--r--gcc/fortran/trans-stmt.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 46a69d4..6670f54 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -1364,8 +1364,9 @@ gfc_trans_forall_loop (forall_info *forall_tmp, int nvar, tree body, int mask_fl
tmp = build2 (PLUS_EXPR, TREE_TYPE (var), var, step);
gfc_add_modify_expr (&block, var, tmp);
- /* Advance to the next mask element. */
- if (mask_flag)
+ /* Advance to the next mask element. Only do this for the
+ innermost loop. */
+ if (n == 0 && mask_flag)
{
mask = forall_tmp->mask;
maskindex = forall_tmp->maskindex;