http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56789
Thomas Koenig <tkoenig at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu.org --- Comment #1 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2013-03-30 22:35:51 UTC --- The problem is that we pack the data, but do not adjust the descriptor accordingly. The dump looks like this: parm.10.dtype = 282; parm.10.dim[0].lbound = 1; parm.10.dim[0].ubound = 3; parm.10.dim[0].stride = 2; parm.10.dim[1].lbound = 1; parm.10.dim[1].ubound = 3; parm.10.dim[1].stride = 10; parm.10.data = (void *) &a[0]; parm.10.offset = 0; origptr.11 = parm.10.data; D.1929 = _gfortran_internal_pack (&parm.10); parm.10.data = D.1929; foo (&parm.10); and it should look like this: parm.12.dim[0].lbound = 1; parm.12.dim[0].ubound = 3; parm.12.dim[0].stride = 1; parm.12.dim[1].lbound = 1; parm.12.dim[1].ubound = 3; parm.12.dim[1].stride = 3; [...]