summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/matmul_4.f90
blob: 8bbaef934c1d0629d05ea8f5328188afacde3b25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
! { dg-do run }
! Check the fix for PR28947, in which the mechanism for dealing
! with matmul (a, transpose (b)) would cause wrong results for
! a having a rank == 1.
!
! Contributed by Harald Anlauf  <anlauf@gmx.de>
!   
program gfcbug40
  implicit none

  real :: h(3,3), mat(2,3)

  h(:,:) = - HUGE (1.0)/4       ! Preset unused elements suitably...

  h(3,:) = 0
  h(3,3) = 1
  mat(:,:) = 1
  h(3,:) = h(3,:) + matmul (matmul (h(3,:), transpose (mat)), mat)

  if (any (h(3,:) .ne. (/2.0, 2.0, 3.0/))) call abort ()

end program gfcbug40