1! { dg-do run } 2! Tests the fix for PR33686, in which dependencies were not 3! correctly handled for the assignments below. 4! 5! Contributed by Dick Hendrickson on comp.lang.fortran, 6! " Most elegant syntax for inverting a permutation?" 20071006 7! 8! Test the fix for PR36091 as well... 9! { dg-options "-fbounds-check" } 10! 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 () 14 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 () 17end 18