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