mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-24 20:44:54 +08:00
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>
|
2001-12-02 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||||
|
|
||||||
* call.c (build_java_interface_fn_ref): Similarly.
|
* call.c (build_java_interface_fn_ref): Similarly.
|
||||||
|
@ -6789,6 +6789,7 @@ finish_vtbls (t)
|
|||||||
{
|
{
|
||||||
tree list;
|
tree list;
|
||||||
tree vbase;
|
tree vbase;
|
||||||
|
int i;
|
||||||
|
|
||||||
/* We lay out the primary and secondary vtables in one contiguous
|
/* We lay out the primary and secondary vtables in one contiguous
|
||||||
vtable. The primary vtable is first, followed by the non-virtual
|
vtable. The primary vtable is first, followed by the non-virtual
|
||||||
@ -6813,6 +6814,18 @@ finish_vtbls (t)
|
|||||||
TYPE_BINFO (t), t, list);
|
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))
|
if (TYPE_BINFO_VTABLE (t))
|
||||||
initialize_vtable (TYPE_BINFO (t), TREE_VALUE (list));
|
initialize_vtable (TYPE_BINFO (t), TREE_VALUE (list));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user