1! { dg-do run }
2! { dg-options "-Warray-temporaries" }
3! PR fortran/56937 - unnecessary temporaries with vector indices
4program main
5  real :: q(4), r(4), p(3)
6  integer :: idx(3)
7  p = [0.5, 1.0, 2.0]
8  idx = [4,3,1]
9  r = 1.0
10  r(idx) = r(idx) + p
11  q = 1.0
12  q(4) = q(4) + p(1)
13  q(3) = q(3) + p(2)
14  q(1) = q(1) + p(3)
15  if (any (q - r /= 0)) STOP 1
16end
17