summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/forall_6.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/forall_6.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/forall_6.f9018
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/forall_6.f90 b/gcc/testsuite/gfortran.dg/forall_6.f90
new file mode 100644
index 000000000..158c549cc
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/forall_6.f90
@@ -0,0 +1,18 @@
+! PR fortran/30404
+! Checks that we correctly handle nested masks in nested FORALL blocks.
+! Contributed by Paul Thomas <pault@gcc.gnu.org>
+!
+! { dg-do run }
+ logical :: l1(2,2)
+ integer :: it(2,2)
+ l1(:,:) = reshape ((/.false.,.true.,.true.,.false./), (/2,2/))
+ it(:,:) = reshape ((/1,2,3,4/), (/2,2/))
+ forall (i = 1:2, i < 3)
+ forall (j = 1:2, l1(i,j))
+ it(i, j) = 0
+ end forall
+ end forall
+! print *, l1
+! print '(4i2)', it
+ if (any (it .ne. reshape ((/1, 0, 0, 4/), (/2, 2/)))) call abort ()
+end