diff options
author | Jason Merrill <jason@gcc.gnu.org> | 1997-08-20 20:50:39 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1997-08-20 20:50:39 -0400 |
commit | 49c249e1c8aecde11d2166d5bfc6789cb3882172 (patch) | |
tree | c9fa739ae50f1adb0f63b8a81e6fb2113c2dacc5 /gcc/cp/class.c | |
parent | 177873a5216e3c6c526885d9fcb836c17e6e0cd4 (diff) | |
download | gcc-49c249e1c8aecde11d2166d5bfc6789cb3882172.zip gcc-49c249e1c8aecde11d2166d5bfc6789cb3882172.tar.gz gcc-49c249e1c8aecde11d2166d5bfc6789cb3882172.tar.bz2 |
[multiple changes]
Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com>
* call.c (is_subseq): Don't try to be clever.
Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
* parse.y, pt.c: Include "except.h".
* call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
prototyping.
Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com>
* decl2.c (mark_vtable_entries): Instead of replacing pure
virtuals with a reference to __pure_virtual, copy the decl and
change the RTL.
From-SVN: r14868
Diffstat (limited to 'gcc/cp/class.c')
-rw-r--r-- | gcc/cp/class.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 0d33c80..3270bff 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -82,7 +82,50 @@ tree current_class_type; /* _TYPE: the type of the current class */ tree previous_class_type; /* _TYPE: the previous type that was a class */ tree previous_class_values; /* TREE_LIST: copy of the class_shadowed list when leaving an outermost class scope. */ + +struct base_info; + static tree get_vfield_name PROTO((tree)); +static void finish_struct_anon PROTO((tree)); +static tree build_vbase_pointer PROTO((tree, tree)); +static int complete_type_p PROTO((tree)); +static int typecode_p PROTO((tree, enum tree_code)); +static tree build_vtable_entry PROTO((tree, tree)); +static tree get_vtable_name PROTO((tree)); +static tree get_derived_offset PROTO((tree, tree)); +static tree get_basefndecls PROTO((tree, tree)); +static void set_rtti_entry PROTO((tree, tree, tree)); +static tree build_vtable PROTO((tree, tree)); +static tree build_type_pathname PROTO((char *, tree, tree)); +static void prepare_fresh_vtable PROTO((tree, tree)); +static void fixup_vtable_deltas1 PROTO((tree, tree)); +static void fixup_vtable_deltas PROTO((tree, int, tree)); +static void grow_method PROTO((tree, tree *)); +static void finish_vtbls PROTO((tree, int, tree)); +static void modify_vtable_entry PROTO((tree, tree, tree)); +static tree get_vtable_entry_n PROTO((tree, unsigned HOST_WIDE_INT)); +static tree add_virtual_function PROTO((tree, int *, tree, tree)); +static tree delete_duplicate_fields_1 PROTO((tree, tree)); +static void delete_duplicate_fields PROTO((tree)); +static void finish_struct_bits PROTO((tree, int)); +static int alter_access PROTO((tree, tree, tree)); +static int overrides PROTO((tree, tree)); +static int strictly_overrides PROTO((tree, tree)); +static void merge_overrides PROTO((tree, tree, int, tree)); +static void override_one_vtable PROTO((tree, tree, tree)); +static void mark_overriders PROTO((tree, tree)); +static void check_for_override PROTO((tree, tree)); +static tree maybe_fixup_vptrs PROTO((tree, tree, tree)); +static tree get_class_offset_1 PROTO((tree, tree, tree, tree, tree)); +static tree get_class_offset PROTO((tree, tree, tree, tree)); +static void modify_one_vtable PROTO((tree, tree, tree, tree)); +static void modify_all_vtables PROTO((tree, tree, tree)); +static void modify_all_direct_vtables PROTO((tree, int, tree, tree, + tree)); +static void modify_all_indirect_vtables PROTO((tree, int, int, tree, + tree, tree)); +static void build_class_init_list PROTO((tree)); +static int finish_base_struct PROTO((tree, struct base_info *, tree)); /* Way of stacking language names. */ tree *current_lang_base, *current_lang_stack; |