1! { dg-do run } 2! PR 27662. Don't zero the first stride to indicate a temporary. It 3! may be used later. 4program pr27662 5 implicit none 6 real(kind=kind(1.0d0)), dimension (2, 2):: x, y, z; 7 integer i, j 8 x(1,1) = 1.d0 9 x(2,1) = 0.d0 10 x(1,2) = 0.d0 11 x(2,2) = 1.d0 12 z = matmul (x, transpose (test ())) 13 do i = 1, size (x, 1) 14 do j = 1, size (x, 2) 15 if (x (i, j) .ne. z (i, j)) call abort () 16 end do 17 end do 18 19contains 20 function test () result (res) 21 real(kind=kind(1.0d0)), dimension(2,2) :: res 22 res(1,1) = 1.d0 23 res(2,1) = 0.d0 24 res(1,2) = 0.d0 25 res(2,2) = 1.d0 26 end function 27end 28