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