diff options
author | Tobias Schlüter <tobi@gcc.gnu.org> | 2005-06-13 20:23:46 +0200 |
---|---|---|
committer | Tobias Schlüter <tobi@gcc.gnu.org> | 2005-06-13 20:23:46 +0200 |
commit | a8e12e4d7509326a298a3ddd39fb0d2746811ff2 (patch) | |
tree | d05e6ea1595ad1c2e3368a674755ed1c871d483b /gcc/fortran/trans-stmt.c | |
parent | 8fe4d24bebd6df659ab43ad5dd065a29c473f815 (diff) | |
download | gcc-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.c | 5 |
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; |