Message ID | 20100615201557.GL27105@codesourcery.com |
---|---|
State | New |
Headers | show |
On Tue, 2010-06-15 at 13:15 -0700, Nathan Froyd wrote: > Index: class.c > =================================================================== > --- class.c (revision 160473) > +++ class.c (working copy) > @@ -7618,14 +7618,15 @@ build_vtbl_initializer (tree binfo, > ix--) > { > int j; > - int new_position = TARGET_VTABLE_DATA_ENTRY_DISTANCE * ix; > + int new_position = (TARGET_VTABLE_DATA_ENTRY_DISTANCE * ix > + + (TARGET_VTABLE_DATA_ENTRY_DISTANCE - 1)); > > VEC_replace (constructor_elt, vid.inits, new_position, e); > > for (j = 1; j < TARGET_VTABLE_DATA_ENTRY_DISTANCE; ++j) > { > - constructor_elt *f = VEC_index (constructor_elt, *inits, > - new_position + j); > + constructor_elt *f = VEC_index (constructor_elt, vid.inits, > + new_position - j); > f->index = NULL_TREE; > f->value = build1 (NOP_EXPR, vtable_entry_type, > null_pointer_node); > This latest patch is looking good. The bootstrap worked and testing is looking good too. I haven't finished a full test run yet but I am not seeing any regressions so far. Steve Ellcey sje@cup.hp.com
Nathan, I finished a full bootstrap and test of the last patch you sent me and it looks good on IA64 HP-UX. Steve Ellcey sje@cup.hp.com
Index: class.c =================================================================== --- class.c (revision 160473) +++ class.c (working copy) @@ -7618,14 +7618,15 @@ build_vtbl_initializer (tree binfo, ix--) { int j; - int new_position = TARGET_VTABLE_DATA_ENTRY_DISTANCE * ix; + int new_position = (TARGET_VTABLE_DATA_ENTRY_DISTANCE * ix + + (TARGET_VTABLE_DATA_ENTRY_DISTANCE - 1)); VEC_replace (constructor_elt, vid.inits, new_position, e); for (j = 1; j < TARGET_VTABLE_DATA_ENTRY_DISTANCE; ++j) { - constructor_elt *f = VEC_index (constructor_elt, *inits, - new_position + j); + constructor_elt *f = VEC_index (constructor_elt, vid.inits, + new_position - j); f->index = NULL_TREE; f->value = build1 (NOP_EXPR, vtable_entry_type, null_pointer_node);