1! { dg-do run } 2! { dg-additional-options "-ffrontend-optimize -Warray-temporaries" } 3! PR 93113 - this used to ICE, and should not generate a temporary. 4program main 5 integer, parameter :: n = 10 6 complex, dimension(n,n) :: a, b, c 7 real, dimension(n,n) :: r 8 call random_number (r) 9 c%re = r 10 call random_number (r) 11 c%im = r 12 13 a = c 14 b = c 15 b%re = a%re - 0.5 16 b%im = a%im - 0.5 17 a%re = a%re - 0.5 18 a%im = a%im - 0.5 19 if (any (a /= b)) stop 1 20 b%im = a%re 21 a%im = a%re 22 if (any (a /= b)) stop 2 23 a = c 24 b = c 25 b(2:n,:)%re = a(1:n-1,:)%re 26 a(2:n,:)%re = a(1:n-1,:)%re 27 if (any (a /= b)) stop 3 28 a = c 29 b = c 30 b(1:n-1,:)%im = a(2:,:)%im 31 a(1:n-1,:)%im = a(2:,:)%im 32 if (any (a /= b)) stop 3 33end program main 34