1! { dg-do run } 2! { dg-options "-Warray-temporaries" } 3! No temporary should be generated in this case. 4program main 5 implicit none 6 integer :: i,n 7 integer :: a(10) 8 integer :: b(10) 9 do i=1,10 10 a(i) = i 11 b(i) = i 12 end do 13 n = 1 14 ! Same result when assigning to a or b 15 b(n+1:10:4) = a(n+2:8:2) 16 a(n+1:10:4) = a(n+2:8:2) 17 if (any (a/=b)) call abort 18end program main 19 20