! { dg-do compile }
program matmul_bounds_1
  implicit none
  real, dimension(3,2) :: a
  real, dimension(2,3) :: b
  real, dimension(3,2) :: rab
  real, dimension(2,2) :: rok
  real, dimension(2) :: rv
  real, dimension(3) :: rw
  real, dimension(3) :: x
  real, dimension(2) :: y
  a = 1
  b = 2
  x = 3
  y = 4
  ! These tests should throw an error
  rab = matmul(a,b) ! { dg-error "Different shape" }
  rv = matmul(a,y) ! { dg-error "Different shape" }
  rv = matmul(x,b) ! { dg-error "Different shape" }
  ! These are ok.
  rw = matmul(a,y)
  rv = matmul(x,a)
  rok = matmul(b,a)
end program matmul_bounds_1