C++ PATCH: Emit secondary vtables w/correct class

Chip Salzenberg chip@valinux.com
Sun Jun 11 19:31:00 GMT 2000


I'm not sure this is a totally correct patch, but it works for me:
I can now build libstdc++-v3 as a shared library without undefined
vtable references.

2000-06-11  Chip Salzenberg  <chip@valinux.com>

	* class.c (build_ctor_vtbl_group): Associate secondary vtables
	with their most-derived class.

Index: class.c
diff -u -2 -p -c -r1.316 class.c
cvs server: conflicting specifications of output style
*** class.c	2000/06/09 16:45:20	1.316
--- class.c	2000/06/12 02:08:20
*************** build_ctor_vtbl_group (binfo, t)
*** 6782,6786 ****
       constructing the addresses of secondary vtables in the
       construction vtable group.  */
!   vtbl = build_vtable (BINFO_TYPE (binfo), id, ptr_type_node);
    list = build_tree_list (vtbl, NULL_TREE);
    accumulate_vtbl_inits (binfo, TYPE_BINFO (TREE_TYPE (binfo)),
--- 6782,6786 ----
       constructing the addresses of secondary vtables in the
       construction vtable group.  */
!   vtbl = build_vtable (t, id, ptr_type_node);
    list = build_tree_list (vtbl, NULL_TREE);
    accumulate_vtbl_inits (binfo, TYPE_BINFO (TREE_TYPE (binfo)),

-- 
Chip Salzenberg              - a.k.a. -              <chip@valinux.com>
"I wanted to play hopscotch with the impenetrable mystery of existence,
    but he stepped in a wormhole and had to go in early."  // MST3K


More information about the Gcc-bugs mailing list