------- Comment #1 from dominiq at lps dot ens dot fr 2007-11-30 23:59 -------
If this may help, I have extracted the following piece from the
-fdump-tree-original:
{
struct __st_parameter_dt dt_parm.11;
dt_parm.11.common.filename = &"pr18022_red.f90"[1]{lb: 1 sz: 1};
dt_parm.11.common.line = 21;
dt_parm.11.internal_unit = &buf1[1]{lb: 1 sz: 1};
dt_parm.11.internal_unit_len = 30;
dt_parm.11.internal_unit_desc = 0B;
dt_parm.11.common.unit = 0;
dt_parm.11.common.flags = 16512;
_gfortran_st_write (&dt_parm.11);
{
integer(kind=4) S.12;
S.12 = 1;
while (1)
{
if (S.12 > 4) goto L.9;
{
struct point * D.853;
D.853 = &pts[S.12 + -1];
_gfortran_transfer_character (&dt_parm.11, &D.853->x, 2);
_gfortran_transfer_character (&dt_parm.11, &D.853->y, 2);
}
S.12 = S.12 + 1;
}
L.9:;
}
_gfortran_st_write_done (&dt_parm.11);
}
{
struct __st_parameter_dt dt_parm.13;
dt_parm.13.common.filename = &"pr18022_red.f90"[1]{lb: 1 sz: 1};
dt_parm.13.common.line = 22;
dt_parm.13.internal_unit = &buf2[1]{lb: 1 sz: 1};
dt_parm.13.internal_unit_len = 30;
dt_parm.13.internal_unit_desc = 0B;
dt_parm.13.common.unit = 0;
dt_parm.13.common.flags = 16512;
_gfortran_st_write (&dt_parm.13);
{
struct array2_unknown parm.14;
parm.14.dtype = 178;
parm.14.dim[0].lbound = 1;
parm.14.dim[0].ubound = 4;
parm.14.dim[0].stride = 1;
parm.14.dim[1].lbound = 1;
parm.14.dim[1].ubound = 2;
parm.14.dim[1].stride = 4;
parm.14.data = (void *) (character(kind=1)[0:][1:2] *) &tab_c[0];
parm.14.offset = -5;
_gfortran_transfer_array (&dt_parm.13, &parm.14, 1, 2);
}
_gfortran_st_write_done (&dt_parm.13);
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34306