------- Comment #3 from pault at gcc dot gnu dot org 2008-03-29 07:27 ------- (In reply to comment #2) Hah! It's still worse than I thought. Not only is a temporary not made but the scalarizer is being blown out of the water by the likes of:
program main implicit none complex, dimension(2,2) :: a,b,c,d a(1,1) = (1.,1.) a(2,1) = (2.,2.) a(1,2) = (3.,3.) a(2,2) = (4.,4.) b = a c = (0.0,0.0) b = conjg(transpose(b + c)) print *, "H(a) - wrong: ",b b = a b = transpose(conjg(b + c)) print *, "H(a) - OK: ",b b = a d = conjg(transpose(b + c)) b = d print *, "H(a) - really wrong: ",b END program main Paul -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35740