http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46842
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Summary|[4.6 Regression] 465.tonto |[4.6 Regression] wrong |test run miscompares (even |results with MATHMUL(..., |with -O0) |TRANSPOSE (func ())) -- | |465.tonto test run | |miscompares --- Comment #16 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-12-09 22:50:08 UTC --- Thanks to Sebastian for some debugging help. Reduced test case below. Older gfortrans and other compilers produce (correct): 4.0000000 4.0000000 6.0000000 6.0000000 The current 4.6 gfortran produces (wrong): 3.0000000 3.0000000 7.0000000 7.0000000 implicit none call sub() contains subroutine sub() real, dimension(2,2) :: b b = 1.0 b = matmul(b,transpose(func())) print *, b end subroutine function func() result(res) real, dimension(2,2) :: res res = reshape([1,2,3,4], [2,2]) end function end