------- Comment #3 from dfranke at gcc dot gnu dot org 2010-05-16 20:17 ------- The simplifiers show the same behaviour:
$> cat pr44156.f90 program main implicit none real, dimension(1), parameter :: a = -1.0, b = 0.0 real, dimension(1,1), parameter :: aa = -1.0, bb = 0.0 real, dimension(1), parameter :: c = dot_product(a,b) real, dimension(1,1), parameter :: d = matmul(aa, bb) real, parameter :: e = a(1) * b(1) print *, c, d, e end program main $ gfortran-svn -Wall -W pr44156.f90 && ./a.out 0.0000000 0.0000000 -0.0000000 The dump has: MAIN__ () { static real(kind=4) c[1] = {}; static real(kind=4) d[1] = {0.0}; [writes snipped] { static real(kind=4) C.1525 = -0.0; _gfortran_transfer_real (&dt_parm.0, &C.1525, 4); } } -- dfranke at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dfranke at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44156