aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/class.c
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>1997-08-20 20:50:39 -0400
committerJason Merrill <jason@gcc.gnu.org>1997-08-20 20:50:39 -0400
commit49c249e1c8aecde11d2166d5bfc6789cb3882172 (patch)
treec9fa739ae50f1adb0f63b8a81e6fb2113c2dacc5 /gcc/cp/class.c
parent177873a5216e3c6c526885d9fcb836c17e6e0cd4 (diff)
downloadgcc-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.c43
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;