https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118580
--- Comment #3 from federico <federico.perini at gmail dot com> ---
Sorry, I introduced a typo while editing the post.
Here is a slightly shorter version of the sample:
```
program complex_eye
implicit none
integer, parameter :: k = 2
integer :: j
complex, dimension(k,k) :: A, B
double precision :: eye(k, k), mx, mxB
eye = 0
do j = 1,k
eye(j,j) = 1
end do
A = eye
B = A - eye
mx = maxval(abs(A-eye))
mxB = maxval(abs(B))
if (mx>1.0e-6) then
write(*, *) "maxval(abs(A - eye)) = ", mx ! Should be 0, it is 1.0
write(*, *) "maxval(abs(B)) = ", mxB
stop 1
else
stop 0
endif
end program complex_eye
```