http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60392
janus at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code CC| |janus at gcc dot gnu.org --- Comment #2 from janus at gcc dot gnu.org --- Confirmed with 4.6 to trunk. Somewhat modified test case (using integers, 2x2 matrices, functions; without random numbers): program test implicit none integer, dimension(2,2), parameter :: A = reshape ((/1,2,3,4/), (/2,2/)) integer, dimension(2,2) :: B1, B2 ! Normal argument B1 = my_mul(A,A) B2 = my_mul_cont(A,A) print *,'Normal: ',maxval(abs(B1-B2)) print *,B1 print *,B2 ! Transposed argument B1 = my_mul(transpose(A),A) B2 = my_mul_cont(transpose(A),A) print *,'Transposed:',maxval(abs(B1-B2)) print *,B1 print *,B2 contains function my_mul(A,C) result (B) use, intrinsic :: ISO_Fortran_env integer, intent(in) :: A(2,2), C(2,2) integer :: B(2,2) B = matmul(A, C) end function function my_mul_cont(A,C) result (B) use, intrinsic :: ISO_Fortran_env integer, intent(in), contiguous :: A(:,:), C(:,:) integer :: B(2,2) B = matmul(A, C) end function end program