https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66182
Bug ID: 66182 Summary: Unneeded temporary for elemental functions of function results Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: tkoenig at gcc dot gnu.org Target Milestone: --- ig25@linux-fd1f:~/Krempel/Assign> cat matmul.f90 program main complex, dimension(3,3) :: a,b,c real, dimension(3,3) :: ar, ai, br, bi call random_number(ar) call random_number(ai) call random_number(br) call random_number(bi) a = ar + (0.,1.)*ai b = br + (0.,1.)*bi c = conjg(matmul(a,b)) print *,c end program main ig25@linux-fd1f:~/Krempel/Assign> gfortran -Warray-temporaries matmul.f90 matmul.f90:10:12: c = conjg(matmul(a,b)) 1 Warning: Creating array temporary at (1) [-Warray-temporaries] This should be replaced by c = matmul(a,b) c = conjg(c)