! { dg-do compile } ! { dg-options "-Warray-temporaries -O" } module foo implicit none contains pure function bar(i,j) integer, intent(in) :: i,j integer, dimension(2,2) :: bar bar = 33 end function bar end module foo program main use foo implicit none integer a(2,2), b(2,2),c(2,2), d(2,2), e(2) read (*,*) b, c, d a = matmul(b,c) + d a = b + bar(3,4) a = bar(3,4)*5 + b e = sum(b,1) + 3 end program main