http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60717
Paul Thomas <pault at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-03-31 CC| |pault at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |pault at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Paul Thomas <pault at gcc dot gnu.org> --- Confirmed. You beat me to it by about 30 minutes, Vladimir! The problem is the recursive call within 'show_generic': D.3571 = a->_data.dim[0].ubound; parm.2.dtype = 345; D.3575 = a->_data.dim[0].stride; parm.2.dim[0].lbound = 1; parm.2.dim[0].ubound = D.3571 + -1; parm.2.dim[0].stride = NON_LVALUE_EXPR <D.3575>; parm.2.data = a->_data.data + (sizetype) (a->_vptr->_size * NON_LVALUE_EXPR <D.3575>); parm.2.offset = 0; class.3._data = VIEW_CONVERT_EXPR<struct array1_unknown>(parm.2); class.3._vptr = a->_vptr; show_generic (&class.3); The offset is 0, whereas it should be -1. The call to 'show_generic' from the main program is done correctly: parm.17.dtype = 281; parm.17.dim[0].lbound = 1; parm.17.dim[0].ubound = 6; parm.17.dim[0].stride = 1; parm.17.data = (void *) &array[0]; parm.17.offset = -1; class.16._data = parm.17; show_generic (&class.16); This tells us exactly where the problem is. I am taking it. Paul