another unneeded temporary (since a has neither a pointer nor a target attribute)
MODULE M1 IMPLICIT NONE TYPE cell_type REAL :: h(3,3) END TYPE CONTAINS SUBROUTINE S1(cell) TYPE(cell_type), POINTER :: cell REAL :: a(3),b(3) a=MATMUL(cell%h,b) END SUBROUTINE S1 END MODULE M1 -- Summary: unneeded temporary Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36933