2009-10-05 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / testsuite / gfortran.dg / forall_13.f90
blobc7819f101838e0045175b790ee32690a2eaac891
1 ! { dg-do run }
2 ! Tests the fix for PR33686, in which dependencies were not
3 ! correctly handled for the assignments below.
5 ! Contributed by Dick Hendrickson on comp.lang.fortran,
6 ! " Most elegant syntax for inverting a permutation?" 20071006
8 ! Test the fix for PR36091 as well...
9 ! { dg-options "-fbounds-check" }
11 integer :: p(4) = (/2,4,1,3/)
12 forall (i = 1:4) p(p(i)) = i ! This was the original
13 if (any (p .ne. (/3,1,4,2/))) call abort ()
15 forall (i = 1:4) p(5 - p(i)) = p(5 - i) ! This is a more complicated version
16 if (any (p .ne. (/1,2,3,4/))) call abort ()
17 end