Find a file
Mark Mitchell c35cce41da Correct many new ABI issues regarding vbase and vcall offset layout.
Correct many new ABI issues regarding vbase and vcall offset
	layout.
	* cp-tree.h (BINFO_VTABLE): Document.
	(struct lang_type): Tweak formatting.
	(BINFO_PRIMARY_BINFO): Add to documentation.
	(CLASSTYPE_VSIZE): Fix typo in comment.
	(CLASSTYPE_VBASECLASSES): Update documentation.
	(BINFO_VBASE_MARKED): Remove.
	(SET_BINFO_VBASE_MARKED): Likewise.
	(CLEAR_BINFO_VBASE_MARKED): Likewise.
	(BINFO_FIELDS_MARKED): Remove.
	(SET_BINFO_FIELDS_MARKED): Likewise.
	(CLEAR_BINFO_FIELDS_MARKED): Likewise.
	(enum access_kind): New enumeration.
	(num_extra_vtbl_entries): Remove declaration.
	(size_extra_vtbl_entries): Likewise.
	(get_vtbl_decl_for_binfo): New function.
	(dfs_vbase_unmark): Remove declaration.
	(mark_primary_bases): Likewise.
	* class.c (SAME_FN): Remove.
	(struct vcall_offset_data_s): Move definition.
	(build_vbase_pointer): Use `build', not `build_binary_op', to
	access the vbase pointer under the new ABI.
	(build_vtable_entry_ref): Use get_vtbl_decl_for_binfo.
	(build_primary_vtable): Likewise.
	(dfs_mark_primary_bases): Move here from search.c.
	(mark_primary_bases): Likewise.
	(determine_primary_bases): Under the new ABI, don't make a base
	class a primary base just because we don't yet have any virtual
	functions.
	(layout_vtable_decl): Use get_vtbl_decl_for_binfo.
	(num_vfun_entries): Remove.
	(dfs_count_virtuals): Likewise.
	(num_extra_vtbl_entries): Likewise.
	(size_extra_vtbl_entries): Likewise.
	(layout_virtual_bases): Iterate in inheritance graph order under
	the new ABI.
	(finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to
	indicate that a vfield is present.
	(init_class_processing): Initialize access_public_node, etc., from
	ak_public, etc.
	(get_vtbl_decl_for_binfo): New function.
	(dump_class_hierarchy_r): Likewise.
	(dump_class_hierarchy): Use it.
	(finish_vtbls): Build the vtbls in inheritance graph order.
	(dfs_finish_vtbls): Adjust call to build_vtbl_initializer.
	(initialize_vtable): Use get_vtbl_decl_for_binfo.
	(accumulate_vtbl_inits): Add comments explaining why a pre-order
	walk is required.
	(dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location
	where the vptr points, even for primary vtables.
	(build_vtbl_initializer): Adjust handling of vbase and vcall
	offsets.
	(build_vcall_and_vbase_vtable_entries): New function.
	(dfs_build_vbase_offset_vtbl_entries): Remove.
	(build_vbase_offset_vtbl_entries): Reimplement.
	(dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that
	were already handled in a primary base class vtable.
	(build_vcall_offset_vtbl_entries): Adjust.
	(build_rtti_vtbl_entries): Adjust.
	* decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo.
	* init.c (expand_virtual_init): Simplify.
	* repo.c (repo_get_id): Use get_vtbl_decl_for_binfo.
	* rtti.c (create_pseudo_type_info): Adjust calculation of vptr.
	* search.c (BINFO_ACCESS): New macro.
	(SET_BINFO_ACCESS): Likewise.
	(dfs_access_in_type): Manipulate access_kinds, not access nodes.
	(access_in_type): Likewise.
	(dfs_accessible_p): Likewise.
	(protected_accessible_p): Likewise.
	(lookup_fnfields_1): Adjust documentation.
	(dfs_mark_primary_bases): Move to class.c
	(mark_primary_bases): Likewise.
	(dfs_vbase_unmark): Remove.
	(virtual_context): Use BINFO_FOR_VBASE.
	(dfs_get_vbase_types): Simplify.
	(dfs_build_inheritance_graph_order): New function.
	(get_vbase_types): Use it.
	* tree.c (debug_binfo): Use get_vtbl_decl_for_binfo.

	* tinfo.cc (get_vbase_offset): New function.
	(__vmi_class_type_info::do_find_public_src): Use it.
	(__vmi_class_type_info::do_dyncast): Likewise.
	(__vmi_class_type_info::do_upcast): Likewise.

From-SVN: r32905
2000-04-04 18:13:22 +00:00
boehm-gc misc.c (GC_enable): Always define GC_enable and GC_disable. 2000-04-02 15:36:43 +00:00
config Add support for sh-pe and arm-wince-pe targets. 2000-02-23 01:25:56 +00:00
contrib newcvsroot: Add check on the number of command-line arguments. 1999-12-18 14:34:56 +00:00
etc * configure.in: Use AC_PREREQ(2.12.1). 1998-11-23 13:51:40 +00:00
gcc Correct many new ABI issues regarding vbase and vcall offset layout. 2000-04-04 18:13:22 +00:00
include hashtab.h (hashval_t): New type. 2000-03-31 07:04:37 +00:00
INSTALL More mail address and web address updates. 1999-08-09 00:48:10 -06:00
libchill * basicio.c (PATH_MAX): Always provide a definition. 2000-04-03 01:21:06 -06:00
libf2c Daily bump. 2000-04-04 01:45:07 -06:00
libffi * Makefile.in: Hand edit for java_raw_api.lo. 2000-03-21 01:03:02 +00:00
libiberty hashtab.h (hashval_t): New type. 2000-03-31 07:04:37 +00:00
libio * configure.in: Indent the # of #include_next one space. 2000-04-02 22:51:55 +00:00
libjava jvm.h (_Jv_GetArrayElementFromElementType): More commentary from Alex. 2000-04-03 23:36:49 +00:00
libobjc Protocol.h, [...]: Change #endif labels to comments. 2000-03-29 20:19:06 +00:00
libstdc++ * configure.in: -linux-gnu*, not -linux-gnu. 2000-03-29 21:11:39 -05:00
texinfo dummy checkin to prevent merge lossage 1999-09-04 09:09:22 -06:00
zlib configure: Rebuilt. 1999-10-04 22:08:42 +00:00
.cvsignore * .cvsignore (*-install): Remove. 1997-09-04 09:49:02 -06:00
ChangeLog * configure.in: -linux-gnu*, not -linux-gnu. 2000-03-29 21:11:39 -05:00
config-ml.in config-ml.in (sparc*-*-*): Disable sparcv9 support if the necessary libraries are missing. 1999-11-23 00:57:06 -07:00
config.guess config.guess: Synchronize with master repository. 2000-02-16 18:48:36 +00:00
config.if config.if (cxx_interface, [...]): Do not try to set these if the appropriate directories and files to not exist. 1998-10-18 11:37:10 -06:00
config.sub Add support for an OS of "wince" 2000-02-24 21:21:31 +00:00
configure configure (gcc_version): When setting, narrow search to lines containing `version_string'. 2000-02-16 16:22:47 +00:00
configure.in * configure.in: -linux-gnu*, not -linux-gnu. 2000-03-29 21:11:39 -05:00
COPYING Initial revision 1997-08-21 18:57:35 -04:00
COPYING.LIB Update address. 1998-02-23 14:57:23 -07:00
install-sh Final changes from devo<->egcs merge. 1998-10-12 04:44:57 -06:00
ltconfig * ltconfig, ltmain.sh: Update to libtool 1.2f. 1999-06-21 20:36:09 -06:00
ltmain.sh * ltconfig, ltmain.sh: Update to libtool 1.2f. 1999-06-21 20:36:09 -06:00
MAINTAINERS Linuxbox has changed names... 2000-03-27 17:10:52 +00:00
Makefile.in Makefile.in (CC_FOR_TARGET): Add new winsup directory structure stuff to -L library search. 2000-02-26 13:04:50 -07:00
missing missing: Update to version from automake 1.3. 1998-10-08 17:28:38 -06:00
mkinstalldirs Initial revision 1997-08-21 18:57:35 -04:00
move-if-change FSF address fix in copyright header. 1999-01-11 07:12:18 -07:00
README README: Remove installation instructions and refer to the INSTALL directory instead. 1998-10-02 09:22:08 +00:00
symlink-tree Initial revision 1997-08-21 18:57:35 -04:00
ylwrap ylwrap: Change absolute path checks to check for DOS style path names. 1998-10-08 17:26:54 -06:00

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.


Check the INSTALL directory for detailed configuration and installation
instructions.


Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.