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

Reply via email to