1! { dg-do run }
2! Tests the fix for PR33749, in which one of the two assignments
3! below would not produce a temporary for the index expression.
4!
5! Contributed by Dick Hendrickson on comp.lang.fortran,
6! " Most elegant syntax for inverting a permutation?" 20071006
7!
8  integer(4) :: p(4) = (/2,4,1,3/)
9  integer(8) :: q(4) = (/2,4,1,3/)
10  p(p) = (/(i, i = 1, 4)/)
11  q(q) = (/(i, i = 1, 4)/)
12  if (any(p .ne. q)) call abort ()
13end
14
15