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 ```