------- Comment #4 from janus at gcc dot gnu dot org 2009-11-19 11:57 ------- Let's have a look at the dump for the test case in comment #2.
The call to 'func' is translated to: real(kind=4) D.1568; struct array1_real(kind=4) parm.7; static real(kind=4) A.6[2] = {1.00000001490116119384765625e-1, 1.00000001490116119384765625e-1}; static integer(kind=4) C.1562 = 3; parm.7.dtype = 281; parm.7.dim[0].lbound = 1; parm.7.dim[0].ubound = 2; parm.7.dim[0].stride = 1; parm.7.data = (void *) &A.6[0]; parm.7.offset = 0; D.1568 = func (&C.1562, &parm.7); The PPC call to 'funcp%p' looks simlar, except for: D.1576 = _gfortran_internal_pack (&parm.10); D.1578 = funcp.p (&C.1570, D.1576); (i.e. it has an additional _gfortran_internal_pack). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42104