FreeBSD/contrib/gcc/cp/class.c
/* Create all the necessary vtables for T and its base classes.  */
Create all the necessary vtables for T and its base classes.
Create all the necessary vtables for T and its base classes .
static void
finish_vtbls (tree t)
{
  tree list;
  tree vbase;
  list = build_tree_list (BINFO_VTABLE (TYPE_BINFO (t)), NULL_TREE);
  accumulate_vtbl_inits (TYPE_BINFO (t), TYPE_BINFO (t),
			 TYPE_BINFO (t), t, list);
  for (vbase = TYPE_BINFO (t); vbase; vbase = TREE_CHAIN (vbase))
    {
      if (!BINFO_VIRTUAL_P (vbase))
	continue;
      accumulate_vtbl_inits (vbase, vbase, TYPE_BINFO (t), t, list);
    }
  if (BINFO_VTABLE (TYPE_BINFO (t)))
    initialize_vtable (TYPE_BINFO (t), TREE_VALUE (list));
}
static void finish_vtbls ( tree t ) { tree list ; tree vbase ; list = build_tree_list ( BINFO_VTABLE ( TYPE_BINFO ( t ) ) , NULL_TREE ) ; accumulate_vtbl_inits ( TYPE_BINFO ( t ) , TYPE_BINFO ( t ) , TYPE_BINFO ( t ) , t , list ) ; for ( vbase = TYPE_BINFO ( t ) ; vbase ; vbase = TREE_CHAIN ( vbase ) ) { if ( ! BINFO_VIRTUAL_P ( vbase ) ) continue ; accumulate_vtbl_inits ( vbase , vbase , TYPE_BINFO ( t ) , t , list ) ; } if ( BINFO_VTABLE ( TYPE_BINFO ( t ) ) ) initialize_vtable ( TYPE_BINFO ( t ) , TREE_VALUE ( list ) ) ; }
Create all the necessary vtables for T and its base classes.
Create all the necessary vtables for T and its base classes .
/* We lay out the primary and secondary vtables in one contiguous
     vtable.  The primary vtable is first, followed by the non-virtual
     secondary vtables in inheritance graph order.  */ /* Then come the virtual bases, also in inheritance graph order.  */