And another bug found via the test suite. It works with 4.1.3 and 4.2.2, but
with gfortran the result array is .FALSE.; however, result(1,3) shall be .TRUE.
program m
implicit none
logical, dimension (3, 3) :: &
p = &
reshape ( (/.false.,.false.,.false., &
.true., .false.,.false., &
.false.,.true., .false. /), &
(/ 3, 3/) )
logical, dimension(3,3) :: result
result = matmul(p,p)
write(*,*) matmul(p,p)
if(any(result(2:3,:))) stop 'ERROR 1'
if(any(result(1,1:2))) stop 'ERROR 2'
if(.not.result(1,3)) stop 'ERROR 3'
end program m
--
Summary: 4.3 Regression: Matmul of logical values
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
OtherBugsDependingO 32834
nThis:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34566