class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the immediate binfos for our virtual bases.
* class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the immediate binfos for our virtual bases. From-SVN: r47543
This commit is contained in:
parent
6fa3f289e4
commit
ff6685064f
@ -1,3 +1,8 @@
|
||||
2001-12-03 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
|
||||
immediate binfos for our virtual bases.
|
||||
|
||||
2001-12-02 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* call.c (build_java_interface_fn_ref): Similarly.
|
||||
|
@ -6789,6 +6789,7 @@ finish_vtbls (t)
|
||||
{
|
||||
tree list;
|
||||
tree vbase;
|
||||
int i;
|
||||
|
||||
/* We lay out the primary and secondary vtables in one contiguous
|
||||
vtable. The primary vtable is first, followed by the non-virtual
|
||||
@ -6813,6 +6814,18 @@ finish_vtbls (t)
|
||||
TYPE_BINFO (t), t, list);
|
||||
}
|
||||
|
||||
/* Fill in BINFO_VPTR_FIELD in the immediate binfos for our virtual
|
||||
base classes, for the benefit of the debugging backends. */
|
||||
for (i = 0; i < BINFO_N_BASETYPES (TYPE_BINFO (t)); ++i)
|
||||
{
|
||||
tree base = BINFO_BASETYPE (TYPE_BINFO (t), i);
|
||||
if (TREE_VIA_VIRTUAL (base))
|
||||
{
|
||||
tree vbase = binfo_for_vbase (BINFO_TYPE (base), t);
|
||||
BINFO_VPTR_FIELD (base) = BINFO_VPTR_FIELD (vbase);
|
||||
}
|
||||
}
|
||||
|
||||
if (TYPE_BINFO_VTABLE (t))
|
||||
initialize_vtable (TYPE_BINFO (t), TREE_VALUE (list));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user