Lines Matching refs:tree

30 #include "tree.h"
31 #include "cp-tree.h"
39 #include "tree-dump.h"
52 tree name;
55 tree type;
59 tree access;
72 tree binfo;
74 tree derived;
77 tree rtti_binfo;
80 tree inits;
82 tree* last_init;
85 tree vbase;
88 VEC(tree,gc) *fns;
90 tree index;
103 typedef int (*subobject_offset_fn) (tree, tree, splay_tree);
111 static GTY (()) tree sizeof_biggest_empty_class;
115 VEC(tree,gc) *local_classes;
117 static tree get_vfield_name (tree);
118 static void finish_struct_anon (tree);
119 static tree get_vtable_name (tree);
120 static tree get_basefndecls (tree, tree);
121 static int build_primary_vtable (tree, tree);
122 static int build_secondary_vtable (tree);
123 static void finish_vtbls (tree);
124 static void modify_vtable_entry (tree, tree, tree, tree, tree *);
125 static void finish_struct_bits (tree);
126 static int alter_access (tree, tree, tree);
127 static void handle_using_decl (tree, tree);
128 static tree dfs_modify_vtables (tree, void *);
129 static tree modify_all_vtables (tree, tree);
130 static void determine_primary_bases (tree);
131 static void finish_struct_methods (tree);
132 static void maybe_warn_about_overly_private_class (tree);
135 static void add_implicitly_declared_members (tree, int, int);
136 static tree fixed_type_or_null (tree, int *, int *);
137 static tree build_simple_base_path (tree expr, tree binfo);
138 static tree build_vtbl_ref_1 (tree, tree);
139 static tree build_vtbl_initializer (tree, tree, tree, tree, int *);
140 static int count_fields (tree);
141 static int add_fields_to_record_type (tree, struct sorted_fields_type*, int);
142 static void check_bitfield_decl (tree);
143 static void check_field_decl (tree, tree, int *, int *, int *);
144 static void check_field_decls (tree, tree *, int *, int *);
145 static tree *build_base_field (record_layout_info, tree, splay_tree, tree *);
146 static void build_base_fields (record_layout_info, splay_tree, tree *);
147 static void check_methods (tree);
148 static void remove_zero_width_bit_fields (tree);
149 static void check_bases (tree, int *, int *);
150 static void check_bases_and_members (tree);
151 static tree create_vtable_ptr (tree, tree *);
153 static void layout_class_type (tree, tree *);
154 static void fixup_pending_inline (tree);
155 static void fixup_inline_methods (tree);
156 static void propagate_binfo_offsets (tree, tree);
158 static void build_vbase_offset_vtbl_entries (tree, vtbl_init_data *);
159 static void add_vcall_offset_vtbl_entries_r (tree, vtbl_init_data *);
160 static void add_vcall_offset_vtbl_entries_1 (tree, vtbl_init_data *);
161 static void build_vcall_offset_vtbl_entries (tree, vtbl_init_data *);
162 static void add_vcall_offset (tree, tree, vtbl_init_data *);
163 static void layout_vtable_decl (tree, int);
164 static tree dfs_find_final_overrider_pre (tree, void *);
165 static tree dfs_find_final_overrider_post (tree, void *);
166 static tree find_final_overrider (tree, tree, tree);
167 static int make_new_vtable (tree, tree);
168 static tree get_primary_binfo (tree);
170 static tree dump_class_hierarchy_r (FILE *, int, tree, tree, int);
171 static void dump_class_hierarchy (tree);
172 static void dump_class_hierarchy_1 (FILE *, int, tree);
173 static void dump_array (FILE *, tree);
174 static void dump_vtable (tree, tree, tree);
175 static void dump_vtt (tree, tree);
176 static void dump_thunk (FILE *, int, tree);
177 static tree build_vtable (tree, tree, tree);
178 static void initialize_vtable (tree, tree);
180 tree, tree, splay_tree);
181 static tree end_of_class (tree, int);
182 static bool layout_empty_base (tree, tree, splay_tree);
183 static void accumulate_vtbl_inits (tree, tree, tree, tree, tree);
184 static tree dfs_accumulate_vtbl_inits (tree, tree, tree, tree,
185 tree);
186 static void build_rtti_vtbl_entries (tree, vtbl_init_data *);
187 static void build_vcall_and_vbase_vtbl_entries (tree, vtbl_init_data *);
188 static void clone_constructors_and_destructors (tree);
189 static tree build_clone (tree, tree);
190 static void update_vtable_entry_for_fn (tree, tree, tree, tree *, unsigned);
191 static void build_ctor_vtbl_group (tree, tree);
192 static void build_vtt (tree);
193 static tree binfo_ctor_vtable (tree);
194 static tree *build_vtt_inits (tree, tree, tree *, tree *);
195 static tree dfs_build_secondary_vptr_vtt_inits (tree, void *);
196 static tree dfs_fixup_binfo_vtbls (tree, void *);
197 static int record_subobject_offset (tree, tree, splay_tree);
198 static int check_subobject_offset (tree, tree, splay_tree);
199 static int walk_subobject_offsets (tree, subobject_offset_fn,
200 tree, splay_tree, tree, int);
201 static void record_subobject_offsets (tree, tree, splay_tree, bool);
202 static int layout_conflict_p (tree, tree, splay_tree, int);
205 static void warn_about_ambiguous_bases (tree);
206 static bool type_requires_array_cookie (tree);
207 static bool contains_empty_class_p (tree);
208 static bool base_derived_from (tree, tree);
209 static int empty_base_at_nonzero_offset_p (tree, tree, splay_tree);
210 static tree end_of_base (tree);
211 static tree get_vcall_index (tree, tree);
235 tree
237 tree expr,
238 tree binfo,
241 tree v_binfo = NULL_TREE;
242 tree d_binfo = NULL_TREE;
243 tree probe;
244 tree offset;
245 tree target_type;
246 tree null_test = NULL;
247 tree ptr_target_type;
306 tree class_type;
327 tree zero = cp_convert (TREE_TYPE (expr), integer_zero_node);
351 tree v_offset;
358 tree t;
428 static tree
429 build_simple_base_path (tree expr, tree binfo)
431 tree type = BINFO_TYPE (binfo);
432 tree d_binfo = BINFO_INHERITANCE_CHAIN (binfo);
433 tree field;
437 tree temp;
494 tree
495 convert_to_base (tree object, tree type, bool check_access, bool nonnull)
497 tree binfo;
498 tree object_type;
522 tree
523 convert_to_base_statically (tree expr, tree base)
525 tree expr_type;
530 tree pointer_type;
546 tree
547 build_vfield_ref (tree datum, tree type)
549 tree vfield, vcontext;
579 creating extra tree nodes when we don't have to. */
581 static tree
582 build_vtbl_ref_1 (tree instance, tree idx)
584 tree aref;
585 tree vtbl = NULL_TREE;
591 tree fixed_type = fixed_type_or_null (instance, NULL, &cdtorp);
593 tree basetype = non_reference (TREE_TYPE (instance));
597 tree binfo = lookup_base (fixed_type, basetype,
615 tree
616 build_vtbl_ref (tree instance, tree idx)
618 tree aref = build_vtbl_ref_1 (instance, idx);
626 tree
627 build_vfn_ref (tree instance_ptr, tree idx)
629 tree aref;
648 static tree
649 get_vtable_name (tree type)
663 set_linkage_according_to_type (tree type, tree decl)
684 static tree
685 build_vtable (tree class_type, tree name, tree vtable_type)
687 tree decl;
740 tree
741 get_vtable_decl (tree type, int complete)
743 tree decl;
767 build_primary_vtable (tree binfo, tree type)
769 tree decl;
770 tree virtuals;
820 build_secondary_vtable (tree binfo)
844 make_new_vtable (tree t, tree binfo)
866 modify_vtable_entry (tree t,
867 tree binfo,
868 tree fndecl,
869 tree delta,
870 tree *virtuals)
872 tree v;
904 add_method (tree type, tree method, tree using_decl)
907 tree overload;
910 VEC(tree,gc) *method_vec;
913 tree current_fns;
931 method_vec = VEC_alloc (tree, gc, 8);
933 VEC_quick_push (tree, method_vec, NULL_TREE);
934 VEC_quick_push (tree, method_vec, NULL_TREE);
960 tree m;
965 VEC_iterate (tree, method_vec, slot, m);
989 current_fns = insert_p ? NULL_TREE : VEC_index (tree, method_vec, slot);
997 tree fns;
1002 tree fn = OVL_CURRENT (fns);
1003 tree fn_type;
1004 tree method_type;
1005 tree parms1;
1006 tree parms2;
1099 reallocated = VEC_reserve_exact (tree, gc, method_vec, 1);
1101 reallocated = VEC_reserve (tree, gc, method_vec, 1);
1104 if (slot == VEC_length (tree, method_vec))
1105 VEC_quick_push (tree, method_vec, overload);
1107 VEC_quick_insert (tree, method_vec, slot, overload);
1111 VEC_replace (tree, method_vec, slot, overload);
1121 alter_access (tree t, tree fdecl, tree access)
1123 tree elem;
1161 handle_using_decl (tree using_decl, tree t)
1163 tree decl = USING_DECL_DECLS (using_decl);
1164 tree name = DECL_NAME (using_decl);
1165 tree access
1169 tree flist = NULL_TREE;
1170 tree old_value;
1230 check_bases (tree t,
1236 tree base_binfo;
1237 tree binfo;
1244 tree basetype = TREE_TYPE (base_binfo);
1310 determine_primary_bases (tree t)
1313 tree primary = NULL_TREE;
1314 tree type_binfo = TYPE_BINFO (t);
1315 tree base_binfo;
1321 tree primary = CLASSTYPE_PRIMARY_BINFO (BINFO_TYPE (base_binfo));
1327 tree parent = BINFO_INHERITANCE_CHAIN (base_binfo);
1328 tree parent_primary = CLASSTYPE_PRIMARY_BINFO (BINFO_TYPE (parent));
1340 tree this_primary = copied_binfo (primary, base_binfo);
1347 tree delta;
1368 tree basetype = BINFO_TYPE (base_binfo);
1403 tree basetype = BINFO_TYPE (primary);
1412 tree delta;
1437 finish_struct_bits (tree t)
1439 tree variants;
1487 tree variants;
1505 maybe_warn_about_overly_private_class (tree t)
1509 tree fn;
1569 tree binfo = TYPE_BINFO (t);
1619 tree ctor = OVL_CURRENT (fn);
1653 const tree *const m1 = (const tree *) m1_p;
1654 const tree *const m2 = (const tree *) m2_p;
1673 const tree *const m1 = (const tree *) m1_p;
1674 const tree *const m2 = (const tree *) m2_p;
1682 tree d1 = DECL_NAME (OVL_CURRENT (*m1));
1683 tree d2 = DECL_NAME (OVL_CURRENT (*m2));
1700 VEC(tree,gc) *method_vec = (VEC(tree,gc) *) obj;
1701 int len = VEC_length (tree, method_vec);
1703 tree fn;
1708 VEC_iterate (tree, method_vec, slot, fn);
1717 qsort (VEC_address (tree, method_vec) + slot, len - slot, sizeof (tree),
1729 finish_struct_methods (tree t)
1731 tree fn_fields;
1732 VEC(tree,gc) *method_vec;
1739 len = VEC_length (tree, method_vec);
1753 VEC_iterate (tree, method_vec, slot, fn_fields);
1758 qsort (VEC_address (tree, method_vec) + slot,
1759 len-slot, sizeof (tree), method_name_cmp);
1767 layout_vtable_decl (tree binfo, int n)
1769 tree atype;
1770 tree vtable;
1790 same_signature_p (tree fndecl, tree base_fndecl)
1810 tree types, base_types;
1825 base_derived_from (tree derived, tree base)
1827 tree probe;
1845 tree fn;
1847 tree declaring_base;
1849 tree candidates;
1851 VEC(tree,heap) *path;
1858 dfs_find_final_overrider_1 (tree binfo,
1862 tree method;
1870 (VEC_index (tree, ffod->path, depth), ffod, depth))
1877 tree *candidate = &ffod->candidates;
1903 static tree
1904 dfs_find_final_overrider_pre (tree binfo, void *data)
1909 dfs_find_final_overrider_1 (binfo, ffod, VEC_length (tree, ffod->path));
1910 VEC_safe_push (tree, heap, ffod->path, binfo);
1915 static tree
1916 dfs_find_final_overrider_post (tree binfo ATTRIBUTE_UNUSED, void *data)
1919 VEC_pop (tree, ffod->path);
1929 static tree
1930 find_final_overrider (tree derived, tree binfo, tree fn)
1959 ffod.path = VEC_alloc (tree, heap, 30);
1964 VEC_free (tree, heap, ffod.path);
1976 static tree
1977 get_vcall_index (tree fn, tree type)
1997 update_vtable_entry_for_fn (tree t, tree binfo, tree fn, tree* virtuals,
2000 tree b;
2001 tree overrider;
2002 tree delta;
2003 tree virtual_base;
2004 tree first_defn;
2005 tree overrider_fn, overrider_target;
2006 tree target_fn = DECL_THUNK_P (fn) ? THUNK_TARGET (fn) : fn;
2007 tree over_return, base_return;
2049 tree fixed_offset, virtual_offset;
2083 tree thunk_binfo, base_binfo;
2107 tree offset = convert (ssizetype, BINFO_OFFSET (thunk_binfo));
2177 tree probe = first_defn;
2225 static tree
2226 dfs_modify_vtables (tree binfo, void* data)
2228 tree t = (tree) data;
2229 tree virtuals;
2230 tree old_virtuals;
2277 static tree
2278 modify_all_vtables (tree t, tree virtuals)
2280 tree binfo = TYPE_BINFO (t);
2281 tree *fnsp;
2292 tree fn = TREE_VALUE (*fnsp);
2316 static tree
2317 get_basefndecls (tree name, tree t)
2319 tree methods;
2320 tree base_fndecls = NULL_TREE;
2327 for (methods = VEC_index (tree, CLASSTYPE_METHOD_VEC (t), i);
2331 tree method = OVL_CURRENT (methods);
2343 tree basetype = BINFO_TYPE (BINFO_BASE_BINFO (TYPE_BINFO (t), i));
2356 check_for_override (tree decl, tree ctype)
2396 warn_hidden (tree t)
2398 VEC(tree,gc) *method_vec = CLASSTYPE_METHOD_VEC (t);
2399 tree fns;
2404 VEC_iterate (tree, method_vec, i, fns);
2407 tree fn;
2408 tree name;
2409 tree fndecl;
2410 tree base_fndecls;
2411 tree base_binfo;
2412 tree binfo;
2425 tree basetype = BINFO_TYPE (base_binfo);
2440 tree *prev = &base_fndecls;
2469 finish_struct_anon (tree t)
2471 tree field;
2483 tree elt = TYPE_FIELDS (TREE_TYPE (field));
2528 maybe_add_class_template_decl_list (tree type, tree t, int friend_p)
2545 add_implicitly_declared_members (tree t,
2574 tree binfo;
2575 tree base_binfo;
2584 tree base_type;
2585 tree dtor;
2636 count_fields (tree fields)
2638 tree x;
2654 add_fields_to_record_type (tree fields, struct sorted_fields_type *field_vec, int idx)
2656 tree x;
2672 check_bitfield_decl (tree field)
2674 tree type = TREE_TYPE (field);
2675 tree w;
2748 check_field_decl (tree field,
2749 tree t,
2754 tree type = strip_array_types (TREE_TYPE (field));
2764 tree fields;
2841 check_field_decls (tree t, tree *access_decls,
2845 tree *field;
2846 tree *next;
2861 tree x = *field;
2862 tree type = TREE_TYPE (x);
3109 record_subobject_offset (tree type, tree offset, splay_tree offsets)
3125 (tree) n->value));
3134 check_subobject_offset (tree type, tree offset, splay_tree offsets)
3137 tree t;
3147 for (t = (tree) n->value; t; t = TREE_CHAIN (t))
3166 walk_subobject_offsets (tree type,
3168 tree offset,
3170 tree max_offset,
3174 tree type_binfo = NULL_TREE;
3193 tree field;
3194 tree binfo;
3211 tree binfo_offset;
3228 tree orig_binfo;
3252 VEC(tree,gc) *vbases;
3261 VEC_iterate (tree, vbases, ix, binfo); ix++)
3279 tree vbase = get_primary_binfo (type_binfo);
3298 tree field_offset;
3320 tree element_type = strip_array_types (type);
3321 tree domain = TYPE_DOMAIN (type);
3322 tree index;
3364 record_subobject_offsets (tree type,
3365 tree offset,
3369 tree max_offset;
3397 layout_conflict_p (tree type,
3398 tree offset,
3413 offsets, (tree) (max_node->key),
3425 tree decl,
3426 tree binfo,
3429 tree offset = NULL_TREE;
3431 tree type;
3519 empty_base_at_nonzero_offset_p (tree type,
3520 tree offset,
3533 layout_empty_base (tree binfo, tree eoc, splay_tree offsets)
3535 tree alignment;
3536 tree basetype = BINFO_TYPE (binfo);
3591 static tree *
3592 build_base_field (record_layout_info rli, tree binfo,
3593 splay_tree offsets, tree *next_field)
3595 tree t = rli->t;
3596 tree basetype = BINFO_TYPE (binfo);
3606 tree decl;
3635 tree eoc;
3697 splay_tree offsets, tree *next_field)
3701 tree t = rli->t;
3713 tree base_binfo;
3737 check_methods (tree t)
3739 tree x;
3752 VEC_safe_push (tree, gc, CLASSTYPE_PURE_VIRTUALS (t), x);
3773 static tree
3774 build_clone (tree fn, tree name)
3776 tree parms;
3777 tree clone;
3805 tree basetype;
3806 tree parmtypes;
3807 tree exceptions;
3877 tree result;
3896 clone_function_decl (tree fn, int update_method_vec_p)
3898 tree clone;
3955 adjust_clone_args (tree decl)
3957 tree clone;
3962 tree orig_clone_parms = TYPE_ARG_TYPES (TREE_TYPE (clone));
3963 tree orig_decl_parms = TYPE_ARG_TYPES (TREE_TYPE (decl));
3964 tree decl_parms, clone_parms;
3992 tree exceptions = TYPE_RAISES_EXCEPTIONS (TREE_TYPE (clone));
3993 tree basetype = TYPE_METHOD_BASETYPE (TREE_TYPE (clone));
3994 tree type;
4024 clone_constructors_and_destructors (tree t)
4026 tree fns;
4042 remove_zero_width_bit_fields (tree t)
4044 tree *fieldsp;
4062 type_requires_array_cookie (tree type)
4064 tree fns;
4089 tree fn;
4090 tree second_parm;
4117 check_bases_and_members (tree t)
4125 tree access_decls;
4196 static tree
4197 create_vtable_ptr (tree t, tree* virtuals_p)
4199 tree fn;
4206 tree new_virtual = make_node (TREE_LIST);
4241 tree field;
4264 fixup_pending_inline (tree fn)
4268 tree args = DECL_ARGUMENTS (fn);
4281 fixup_inline_methods (tree type)
4283 tree method = TYPE_METHODS (type);
4284 VEC(tree,gc) *friends;
4303 VEC_iterate (tree, friends, ix, method); ix++)
4314 propagate_binfo_offsets (tree binfo, tree offset)
4317 tree primary_binfo;
4318 tree base_binfo;
4355 tree vbase;
4356 tree t = rli->t;
4358 tree *next_field;
4394 tree basetype = TREE_TYPE (vbase);
4429 static tree
4430 end_of_base (tree binfo)
4432 tree size;
4449 static tree
4450 end_of_class (tree t, int include_virtuals_p)
4452 tree result = size_zero_node;
4453 VEC(tree,gc) *vbases;
4454 tree binfo;
4455 tree base_binfo;
4456 tree offset;
4476 VEC_iterate (tree, vbases, i, base_binfo); i++)
4497 warn_about_ambiguous_bases (tree t)
4500 VEC(tree,gc) *vbases;
4501 tree basetype;
4502 tree binfo;
4503 tree base_binfo;
4523 VEC_iterate (tree, vbases, i, binfo); i++)
4538 return tree_int_cst_compare ((tree) k1, (tree) k2);
4547 tree eoc;
4548 tree rli_size;
4589 layout_class_type (tree t, tree *virtuals_p)
4591 tree non_static_data_members;
4592 tree field;
4593 tree vptr;
4601 tree *next_field;
4603 tree base_t;
4636 tree type;
4637 tree padding;
4678 tree integer_type;
4801 tree ftype;
4815 tree padding_field;
4873 tree eoc;
4972 determine_key_method (tree type)
4974 tree method;
5003 finish_struct_1 (tree t)
5005 tree x;
5007 tree virtuals = NULL_TREE;
5079 tree fn;
5097 tree fndecl = BV_FN (fn);
5131 sizeof (struct sorted_fields_type) + n_fields * sizeof (tree));
5134 qsort (field_vec->elts, n_fields, sizeof (tree),
5155 tree dtor;
5193 unreverse_member_declarations (tree t)
5195 tree next;
5196 tree prev;
5197 tree x;
5223 tree
5224 finish_struct (tree t, tree attributes)
5240 tree x;
5256 VEC_safe_push (tree, gc, CLASSTYPE_PURE_VIRTUALS (t), x);
5286 static tree
5287 fixed_type_or_null (tree instance, int* nonnull, int* cdtorp)
5337 tree t = get_base_address (instance);
5406 tree type;
5440 resolves_to_fixed_type_p (tree instance, int* nonnull)
5442 tree t = TREE_TYPE (instance);
5445 tree fixed = fixed_type_or_null (instance, nonnull, &cdtorp);
5464 local_classes = VEC_alloc (tree, gc, 8);
5477 tree type;
5502 pushclass (tree type)
5602 currently_open_class (tree t)
5610 tree c;
5631 tree
5632 currently_open_derived_class (tree t)
5664 push_nested_class (tree type)
5666 tree context;
5689 tree context = DECL_CONTEXT (TYPE_MAIN_DECL (current_class_type));
5701 return VEC_length (tree, current_lang_base);
5708 push_lang_context (tree name)
5710 VEC_safe_push (tree, gc, current_lang_base, current_lang_name);
5745 current_lang_name = VEC_pop (tree, current_lang_base);
5761 static tree
5762 resolve_address_of_overloaded_function (tree target_type,
5763 tree overload,
5766 tree explicit_targs,
5767 tree access_path)
5800 tree matches = NULL_TREE;
5801 tree fn;
5839 tree fns;
5843 tree fn = OVL_CURRENT (fns);
5844 tree fntype;
5878 tree target_fn_type;
5879 tree target_arg_types;
5880 tree target_ret_type;
5881 tree fns;
5897 tree fn = OVL_CURRENT (fns);
5898 tree instantiation;
5899 tree instantiation_type;
5900 tree targs;
5941 tree match = most_specialized_instantiation (matches);
5977 tree match;
6053 tree
6054 instantiate_type (tree lhstype, tree rhs, tsubst_flags_t flags)
6057 tree access_path = NULL_TREE;
6110 Copying it would destroy the tree link. */
6123 tree member = TREE_OPERAND (rhs, 1);
6147 tree fns = TREE_OPERAND (rhs, 0);
6148 tree args = TREE_OPERAND (rhs, 1);
6201 static tree
6202 get_vfield_name (tree type)
6204 tree binfo, base_binfo;
6251 tree name = constructor_name (current_class_type);
6252 tree value = build_lang_decl (TYPE_DECL, name, current_class_type);
6253 tree saved_cas;
6272 is_empty_class (tree type)
6291 contains_empty_class_p (tree type)
6297 tree field;
6298 tree binfo;
6299 tree base_binfo;
6321 maybe_note_name_used_in_class (tree name, tree decl)
6350 note_name_declared_in_class (tree name, tree decl)
6371 DECL_NAME (OVL_CURRENT (decl)), (tree) n->value);
6379 tree
6380 get_vtbl_decl_for_binfo (tree binfo)
6382 tree decl;
6402 static tree
6403 get_primary_binfo (tree binfo)
6405 tree primary_base;
6429 static tree
6432 tree binfo,
6433 tree igo,
6437 tree base_binfo;
6524 dump_class_hierarchy_1 (FILE *stream, int flags, tree t)
6542 debug_class (tree t)
6548 dump_class_hierarchy (tree t)
6561 dump_array (FILE * stream, tree decl)
6563 tree value;
6566 tree size = TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (decl)));
6583 dump_vtable (tree t, tree binfo, tree vtable)
6613 dump_vtt (tree t, tree vtt)
6635 dump_thunk (FILE *stream, int indent, tree thunk)
6638 tree name = DECL_NAME (thunk);
6639 tree thunks;
6649 tree virtual_adjust = THUNK_VIRTUAL_OFFSET (thunk);
6672 debug_thunks (tree fn)
6682 finish_vtbls (tree t)
6684 tree list;
6685 tree vbase;
6709 initialize_vtable (tree binfo, tree inits)
6711 tree decl;
6733 build_vtt (tree t)
6735 tree inits;
6736 tree type;
6737 tree vtt;
6738 tree index;
6768 static tree
6769 binfo_ctor_vtable (tree binfo)
6771 tree vt;
6794 tree index;
6797 tree inits;
6800 tree type_being_constructed;
6811 static tree *
6812 build_vtt_inits (tree binfo, tree t, tree *inits, tree *index)
6815 tree b;
6816 tree init;
6817 tree secondary_vptrs;
6894 static tree
6895 dfs_build_secondary_vptr_vtt_inits (tree binfo, void *data_)
6950 static tree
6951 dfs_fixup_binfo_vtbls (tree binfo, void* data)
6953 tree vtable = BINFO_VTABLE (binfo);
6967 && (TREE_PURPOSE (vtable) == (tree) data))
6977 build_ctor_vtbl_group (tree binfo, tree t)
6979 tree list;
6980 tree type;
6981 tree vtbl;
6982 tree inits;
6983 tree id;
6984 tree vbase;
7007 tree b;
7039 accumulate_vtbl_inits (tree binfo,
7040 tree orig_binfo,
7041 tree rtti_binfo,
7042 tree t,
7043 tree inits)
7046 tree base_binfo;
7088 static tree
7089 dfs_accumulate_vtbl_inits (tree binfo,
7090 tree orig_binfo,
7091 tree rtti_binfo,
7092 tree t,
7093 tree l)
7095 tree inits = NULL_TREE;
7096 tree vtbl = NULL_TREE;
7117 tree b;
7118 tree last = NULL_TREE;
7155 tree index;
7194 static GTY(()) tree abort_fndecl_addr;
7219 static tree
7220 build_vtbl_initializer (tree binfo,
7221 tree orig_binfo,
7222 tree t,
7223 tree rtti_binfo,
7226 tree v, b;
7227 tree vfun_inits;
7230 tree vbinfo;
7231 VEC(tree,gc) *vbases;
7251 vid.fns = VEC_alloc (tree, gc, 32);
7258 VEC_iterate (tree, vbases, ix, vbinfo); ix++)
7264 tree cur, *prev;
7268 tree add = cur;
7288 tree delta;
7289 tree vcall_index;
7290 tree fn, fn_original;
7291 tree init = NULL_TREE;
7375 tree fdesc = build2 (FDESC_EXPR, vfunc_ptr_type_node,
7403 build_vcall_and_vbase_vtbl_entries (tree binfo, vtbl_init_data* vid)
7405 tree b;
7425 build_vbase_offset_vtbl_entries (tree binfo, vtbl_init_data* vid)
7427 tree vbase;
7428 tree t;
7429 tree non_primary_binfo;
7444 tree b;
7467 tree b;
7468 tree delta;
7519 build_vcall_offset_vtbl_entries (tree binfo, vtbl_init_data* vid)
7557 add_vcall_offset_vtbl_entries_r (tree binfo, vtbl_init_data* vid)
7560 tree primary_binfo;
7561 tree base_binfo;
7587 add_vcall_offset_vtbl_entries_1 (tree binfo, vtbl_init_data* vid)
7592 tree orig_fn;
7604 tree derived_virtuals;
7605 tree base_virtuals;
7606 tree orig_virtuals;
7609 tree non_primary_binfo;
7617 tree b;
7652 tree orig_fn;
7672 add_vcall_offset (tree orig_fn, tree binfo, vtbl_init_data *vid)
7675 tree vcall_offset;
7676 tree derived_entry;
7682 for (i = 0; VEC_iterate (tree, vid->fns, i, derived_entry); ++i)
7710 VEC_safe_push (tree, gc, vid->fns, orig_fn);
7714 tree base;
7715 tree fn;
7746 build_rtti_vtbl_entries (tree binfo, vtbl_init_data* vid)
7748 tree b;
7749 tree t;
7750 tree basetype;
7751 tree offset;
7752 tree decl;
7753 tree init;
7764 tree primary_base;
7796 tree
7797 cp_fold_obj_type_ref (tree ref, tree known_type)
7801 tree v = BINFO_VIRTUALS (TYPE_BINFO (known_type));
7802 tree fndecl;