Dear all,

I finally figured out that the array dimensions simply need to be
large enough to get invalid memory accesses that actual lead to a
crash.

I will commit the following testcase along with the fix to libfortran:


! { dg-do run }
! PR libfortran/99218 - matmul on temporary array accesses invalid memory

program p
  implicit none
  integer, parameter :: nState = 300000
  integer, parameter :: nCon = 1
  real,    parameter :: ZERO = 0.0
  real :: G(nCon,nState) = ZERO
  real :: H(nState,nCon) = ZERO
  real :: lambda(nCon)   = ZERO
  real :: f(nState)      = ZERO
  f = matmul (transpose (G), lambda)
  if (f(1) /= ZERO) stop 1
end program


Cheers,
Harald

Reply via email to