This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH,c++] rewrite vtable initialization construction to use VECs


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]