This is the mail archive of the gcc-cvs@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]

egcs/gcc cp/ChangeLog cp/cp-tree.h cp/class.c ...


CVSROOT:	/cvs/gcc
Module name:	egcs
Changes by:	nathan@gcc.gnu.org	2001-06-12 11:08:06

Modified files:
	gcc/cp         : ChangeLog cp-tree.h class.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/g++.old-deja/g++.abi: vbase5.C vbase6.C vbase7.C 

Log message:
	cp:
	PR c++/3130, c++/3131, c++/3132
	* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
	* class.c (force_canonical_binfo_r): Move
	BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
	virtual bases unless they're primary and what they're primary
	too has been moved.
	(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
	with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
	BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
	derived binfo.
	(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
	(layout_nonempty_base_or_field): Add most derived type
	parameter. Adjust.
	(layout_empty_base): Likewise.
	(build_base_field): Likewise.
	(build_base_fields): Likewise.
	(propagate_binfo_offsets): Add most derived type
	parameter. Skip non canonical virtual bases too.
	(dfs_set_offset_for_unshared_vbases): Don't skip primary
	bases. Do skip canonical bases.
	(layout_virtual_bases): Adjust.
	(layout_class_type): Adjust.
	(dfs_get_primary_binfo): Build list of virtual primary base
	candidates.
	(get_primary_binfo): Check that the shared virtual primary
	base candidate was found first.
	(accumulate_vtbl_inits): Don't do anything for non-vptr
	containing binfos. For case 1 primary virtual bases, keep
	checking that we've not emerged from the hierarchy of RTTI_BINFO.
	testsuite:
	* g++.old-deja/g++.abi/vbase5.C: New test.
	* g++.old-deja/g++.abi/vbase6.C: New test.
	* g++.old-deja/g++.abi/vbase7.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.2409&r2=1.2410
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/cp-tree.h.diff?cvsroot=gcc&r1=1.618&r2=1.619
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/cp/class.c.diff?cvsroot=gcc&r1=1.385&r2=1.386
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.1254&r2=1.1255
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/testsuite/g++.old-deja/g++.abi/vbase5.C.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/testsuite/g++.old-deja/g++.abi/vbase6.C.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/testsuite/g++.old-deja/g++.abi/vbase7.C.diff?cvsroot=gcc&r1=1.1&r2=1.2


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