/* Breadth-first and depth-first routines for
searching multiple-inheritance lattice for GNU C++.
Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
tree inits;
};
-static tree lookup_field_1 PARAMS ((tree, tree));
-static int is_subobject_of_p PARAMS ((tree, tree, tree));
-static int is_subobject_of_p_1 PARAMS ((tree, tree, tree));
-static tree dfs_check_overlap PARAMS ((tree, void *));
-static tree dfs_no_overlap_yet PARAMS ((tree, void *));
-static base_kind lookup_base_r
- PARAMS ((tree, tree, base_access, int, int, int, tree *));
-static int dynamic_cast_base_recurse PARAMS ((tree, tree, int, tree *));
-static tree marked_pushdecls_p PARAMS ((tree, void *));
-static tree unmarked_pushdecls_p PARAMS ((tree, void *));
-static tree dfs_debug_unmarkedp PARAMS ((tree, void *));
-static tree dfs_debug_mark PARAMS ((tree, void *));
-static tree dfs_get_vbase_types PARAMS ((tree, void *));
-static tree dfs_push_type_decls PARAMS ((tree, void *));
-static tree dfs_push_decls PARAMS ((tree, void *));
-static tree dfs_unuse_fields PARAMS ((tree, void *));
-static tree add_conversions PARAMS ((tree, void *));
-static int look_for_overrides_r PARAMS ((tree, tree));
-static struct search_level *push_search_level
- PARAMS ((struct stack_level *, struct obstack *));
-static struct search_level *pop_search_level
- PARAMS ((struct stack_level *));
-static tree bfs_walk
- PARAMS ((tree, tree (*) (tree, void *), tree (*) (tree, void *),
- void *));
-static tree lookup_field_queue_p PARAMS ((tree, void *));
-static int shared_member_p PARAMS ((tree));
-static tree lookup_field_r PARAMS ((tree, void *));
-static tree canonical_binfo PARAMS ((tree));
-static tree shared_marked_p PARAMS ((tree, void *));
-static tree shared_unmarked_p PARAMS ((tree, void *));
-static int dependent_base_p PARAMS ((tree));
-static tree dfs_accessible_queue_p PARAMS ((tree, void *));
-static tree dfs_accessible_p PARAMS ((tree, void *));
-static tree dfs_access_in_type PARAMS ((tree, void *));
-static access_kind access_in_type PARAMS ((tree, tree));
-static tree dfs_canonical_queue PARAMS ((tree, void *));
-static tree dfs_assert_unmarked_p PARAMS ((tree, void *));
-static void assert_canonical_unmarked PARAMS ((tree));
-static int protected_accessible_p PARAMS ((tree, tree, tree));
-static int friend_accessible_p PARAMS ((tree, tree, tree));
-static void setup_class_bindings PARAMS ((tree, int));
-static int template_self_reference_p PARAMS ((tree, tree));
-static tree dfs_find_vbase_instance PARAMS ((tree, void *));
-static tree dfs_get_pure_virtuals PARAMS ((tree, void *));
-static tree dfs_build_inheritance_graph_order PARAMS ((tree, void *));
+static tree lookup_field_1 (tree, tree);
+static int is_subobject_of_p (tree, tree, tree);
+static int is_subobject_of_p_1 (tree, tree, tree);
+static tree dfs_check_overlap (tree, void *);
+static tree dfs_no_overlap_yet (tree, void *);
+static base_kind lookup_base_r (tree, tree, base_access,
+ bool, bool, bool, tree *);
+static int dynamic_cast_base_recurse (tree, tree, bool, tree *);
+static tree marked_pushdecls_p (tree, void *);
+static tree unmarked_pushdecls_p (tree, void *);
+static tree dfs_debug_unmarkedp (tree, void *);
+static tree dfs_debug_mark (tree, void *);
+static tree dfs_get_vbase_types (tree, void *);
+static tree dfs_push_type_decls (tree, void *);
+static tree dfs_push_decls (tree, void *);
+static tree dfs_unuse_fields (tree, void *);
+static tree add_conversions (tree, void *);
+static int look_for_overrides_r (tree, tree);
+static struct search_level *push_search_level (struct stack_level *,
+ struct obstack *);
+static struct search_level *pop_search_level (struct stack_level *);
+static tree bfs_walk (tree, tree (*) (tree, void *),
+ tree (*) (tree, void *), void *);
+static tree lookup_field_queue_p (tree, void *);
+static int shared_member_p (tree);
+static tree lookup_field_r (tree, void *);
+static tree canonical_binfo (tree);
+static tree shared_marked_p (tree, void *);
+static tree shared_unmarked_p (tree, void *);
+static int dependent_base_p (tree);
+static tree dfs_accessible_queue_p (tree, void *);
+static tree dfs_accessible_p (tree, void *);
+static tree dfs_access_in_type (tree, void *);
+static access_kind access_in_type (tree, tree);
+static tree dfs_canonical_queue (tree, void *);
+static tree dfs_assert_unmarked_p (tree, void *);
+static void assert_canonical_unmarked (tree);
+static int protected_accessible_p (tree, tree, tree);
+static int friend_accessible_p (tree, tree, tree);
+static void setup_class_bindings (tree, int);
+static int template_self_reference_p (tree, tree);
+static tree dfs_find_vbase_instance (tree, void *);
+static tree dfs_get_pure_virtuals (tree, void *);
+static tree dfs_build_inheritance_graph_order (tree, void *);
/* Allocate a level of searching. */
static struct search_level *
-push_search_level (stack, obstack)
- struct stack_level *stack;
- struct obstack *obstack;
+push_search_level (struct stack_level *stack, struct obstack *obstack)
{
struct search_level tem;
/* Discard a level of search allocation. */
static struct search_level *
-pop_search_level (obstack)
- struct stack_level *obstack;
+pop_search_level (struct stack_level *obstack)
{
register struct search_level *stack = pop_stack_level (obstack);
Otherwise BINFO's bases are searched. */
static base_kind
-lookup_base_r (binfo, base, access, within_current_scope,
- is_non_public, is_virtual, binfo_ptr)
- tree binfo, base;
- base_access access;
- int within_current_scope;
- int is_non_public; /* inside a non-public part */
- int is_virtual; /* inside a virtual part */
- tree *binfo_ptr;
+lookup_base_r (tree binfo, tree base, base_access access,
+ bool within_current_scope,
+ bool is_non_public, /* inside a non-public part */
+ bool is_virtual, /* inside a virtual part */
+ tree *binfo_ptr)
{
int i;
tree bases;
NULL_TREE is returned. */
tree
-lookup_base (t, base, access, kind_ptr)
- tree t, base;
- base_access access;
- base_kind *kind_ptr;
+lookup_base (tree t, tree base, base_access access, base_kind *kind_ptr)
{
tree binfo = NULL; /* The binfo we've found so far. */
tree t_binfo = NULL;
/* Worker function for get_dynamic_cast_base_type. */
static int
-dynamic_cast_base_recurse (subtype, binfo, via_virtual, offset_ptr)
- tree subtype;
- tree binfo;
- int via_virtual;
- tree *offset_ptr;
+dynamic_cast_base_recurse (tree subtype, tree binfo, bool is_via_virtual,
+ tree *offset_ptr)
{
tree binfos;
int i, n_baselinks;
if (BINFO_TYPE (binfo) == subtype)
{
- if (via_virtual)
+ if (is_via_virtual)
return -1;
else
{
continue;
rval = dynamic_cast_base_recurse
(subtype, base_binfo,
- via_virtual || TREE_VIA_VIRTUAL (base_binfo), offset_ptr);
+ is_via_virtual || TREE_VIA_VIRTUAL (base_binfo), offset_ptr);
if (worst == -2)
worst = rval;
else if (rval >= 0)
BOFF == -3, SUBTYPE occurs as multiple public non-virtual bases. */
tree
-get_dynamic_cast_base_type (subtype, target)
- tree subtype;
- tree target;
+get_dynamic_cast_base_type (tree subtype, tree target)
{
tree offset = NULL_TREE;
int boff = dynamic_cast_base_recurse (subtype, TYPE_BINFO (target),
- 0, &offset);
+ false, &offset);
if (!boff)
return offset;
level, this is reasonable.) */
static tree
-lookup_field_1 (type, name)
- tree type, name;
+lookup_field_1 (tree type, tree name)
{
register tree field;
/* Return the scope of DECL, as appropriate when doing name-lookup. */
tree
-context_for_name_lookup (decl)
- tree decl;
+context_for_name_lookup (tree decl)
{
/* [class.union]
otherwise. */
static tree
-canonical_binfo (binfo)
- tree binfo;
+canonical_binfo (tree binfo)
{
return (TREE_VIA_VIRTUAL (binfo)
? TYPE_BINFO (BINFO_TYPE (binfo)) : binfo);
canonical versions of virtual bases. */
static tree
-dfs_canonical_queue (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+dfs_canonical_queue (tree binfo, void *data ATTRIBUTE_UNUSED)
{
return canonical_binfo (binfo);
}
/* Called via dfs_walk from assert_canonical_unmarked. */
static tree
-dfs_assert_unmarked_p (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+dfs_assert_unmarked_p (tree binfo, void *data ATTRIBUTE_UNUSED)
{
my_friendly_assert (!BINFO_MARKED (binfo), 0);
return NULL_TREE;
versions of virtual bases) are unmarked. */
static void
-assert_canonical_unmarked (binfo)
- tree binfo;
+assert_canonical_unmarked (tree binfo)
{
dfs_walk (binfo, dfs_assert_unmarked_p, dfs_canonical_queue, 0);
}
Otherwise, return NULL_TREE. */
static tree
-shared_marked_p (binfo, data)
- tree binfo;
- void *data;
+shared_marked_p (tree binfo, void *data)
{
binfo = canonical_binfo (binfo);
return markedp (binfo, data);
Otherwise, return NULL_TREE. */
static tree
-shared_unmarked_p (binfo, data)
- tree binfo;
- void *data;
+shared_unmarked_p (tree binfo, void *data)
{
binfo = canonical_binfo (binfo);
return unmarkedp (binfo, data);
DATA (which is really a DECL) in BINFO. */
static tree
-dfs_access_in_type (binfo, data)
- tree binfo;
- void *data;
+dfs_access_in_type (tree binfo, void *data)
{
tree decl = (tree) data;
tree type = BINFO_TYPE (binfo);
/* Return the access to DECL in TYPE. */
static access_kind
-access_in_type (type, decl)
- tree type;
- tree decl;
+access_in_type (tree type, tree decl)
{
tree binfo = TYPE_BINFO (type);
/* Called from dfs_accessible_p via dfs_walk. */
static tree
-dfs_accessible_queue_p (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+dfs_accessible_queue_p (tree binfo, void *data ATTRIBUTE_UNUSED)
{
if (BINFO_MARKED (binfo))
return NULL_TREE;
/* Called from dfs_accessible_p via dfs_walk. */
static tree
-dfs_accessible_p (binfo, data)
- tree binfo;
- void *data;
+dfs_accessible_p (tree binfo, void *data)
{
int protected_ok = data != 0;
access_kind access;
indiated by BINFO in the context of DERIVED. */
static int
-protected_accessible_p (decl, derived, binfo)
- tree decl;
- tree derived;
- tree binfo;
+protected_accessible_p (tree decl, tree derived, tree binfo)
{
access_kind access;
to access DECL through the object indicated by BINFO. */
static int
-friend_accessible_p (scope, decl, binfo)
- tree scope;
- tree decl;
- tree binfo;
+friend_accessible_p (tree scope, tree decl, tree binfo)
{
tree befriending_classes;
tree t;
at the most derived class along the path indicated by BINFO. */
int
-accessible_p (type, decl)
- tree type;
- tree decl;
-
+accessible_p (tree type, tree decl)
{
tree binfo;
tree t;
for documentation of the parameters. */
static int
-is_subobject_of_p_1 (parent, binfo, most_derived)
- tree parent, binfo, most_derived;
+is_subobject_of_p_1 (tree parent, tree binfo, tree most_derived)
{
tree binfos;
int i, n_baselinks;
lookup_field via breadth_first_search. */
static tree
-lookup_field_queue_p (binfo, data)
- tree binfo;
- void *data;
+lookup_field_queue_p (tree binfo, void *data)
{
struct lookup_field_info *lfi = (struct lookup_field_info *) data;
Returns nonzero if DECL is such a declaration in a class TYPE. */
static int
-template_self_reference_p (type, decl)
- tree type;
- tree decl;
+template_self_reference_p (tree type, tree decl)
{
return (CLASSTYPE_USE_TEMPLATE (type)
&& PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (type))
This function checks that T contains no nonstatic members. */
static int
-shared_member_p (t)
- tree t;
+shared_member_p (tree t)
{
if (TREE_CODE (t) == VAR_DECL || TREE_CODE (t) == TYPE_DECL \
|| TREE_CODE (t) == CONST_DECL)
lookup_field via breadth_first_search. */
static tree
-lookup_field_r (binfo, data)
- tree binfo;
- void *data;
+lookup_field_r (tree binfo, void *data)
{
struct lookup_field_info *lfi = (struct lookup_field_info *) data;
tree type = BINFO_TYPE (binfo);
If nothing can be found return NULL_TREE and do not issue an error. */
tree
-lookup_member (xbasetype, name, protect, want_type)
- register tree xbasetype, name;
- int protect, want_type;
+lookup_member (tree xbasetype, tree name, int protect, bool want_type)
{
tree rval, rval_binfo = NULL_TREE;
tree type = NULL_TREE, basetype_path = NULL_TREE;
return NULL_TREE. */
tree
-lookup_field (xbasetype, name, protect, want_type)
- register tree xbasetype, name;
- int protect, want_type;
+lookup_field (tree xbasetype, tree name, int protect, bool want_type)
{
tree rval = lookup_member (xbasetype, name, protect, want_type);
return NULL_TREE. */
tree
-lookup_fnfields (xbasetype, name, protect)
- register tree xbasetype, name;
- int protect;
+lookup_fnfields (tree xbasetype, tree name, int protect)
{
- tree rval = lookup_member (xbasetype, name, protect, /*want_type=*/0);
+ tree rval = lookup_member (xbasetype, name, protect, /*want_type=*/false);
/* Ignore non-functions. */
if (rval && !BASELINK_P (rval))
the method vector with name NAME, or -1 is no such field exists. */
int
-lookup_fnfields_1 (type, name)
- tree type, name;
+lookup_fnfields_1 (tree type, tree name)
{
tree method_vec = (CLASS_TYPE_P (type)
? CLASSTYPE_METHOD_VEC (type)
called. */
static tree
-bfs_walk (binfo, fn, qfn, data)
- tree binfo;
- tree (*fn) PARAMS ((tree, void *));
- tree (*qfn) PARAMS ((tree, void *));
- void *data;
+bfs_walk (tree binfo, tree (*fn) (tree, void *),
+ tree (*qfn) (tree, void *), void *data)
{
size_t head;
size_t tail;
in postorder. */
tree
-dfs_walk_real (binfo, prefn, postfn, qfn, data)
- tree binfo;
- tree (*prefn) PARAMS ((tree, void *));
- tree (*postfn) PARAMS ((tree, void *));
- tree (*qfn) PARAMS ((tree, void *));
- void *data;
+dfs_walk_real (tree binfo,
+ tree (*prefn) (tree, void *), tree (*postfn) (tree, void *),
+ tree (*qfn) (tree, void *), void *data)
{
int i;
int n_baselinks;
performed. */
tree
-dfs_walk (binfo, fn, qfn, data)
- tree binfo;
- tree (*fn) PARAMS ((tree, void *));
- tree (*qfn) PARAMS ((tree, void *));
- void *data;
+dfs_walk (tree binfo, tree (*fn) (tree, void *),
+ tree (*qfn) (tree, void *), void *data)
{
return dfs_walk_real (binfo, 0, fn, qfn, data);
}
BASEFN. Issue diagnostic, and return zero, if unacceptable. */
int
-check_final_overrider (overrider, basefn)
- tree overrider, basefn;
+check_final_overrider (tree overrider, tree basefn)
{
tree over_type = TREE_TYPE (overrider);
tree base_type = TREE_TYPE (basefn);
overridden. */
int
-look_for_overrides (type, fndecl)
- tree type, fndecl;
+look_for_overrides (tree type, tree fndecl)
{
tree binfo = TYPE_BINFO (type);
tree basebinfos = BINFO_BASETYPES (binfo);
FNDECL. */
tree
-look_for_overrides_here (type, fndecl)
- tree type, fndecl;
+look_for_overrides_here (tree type, tree fndecl)
{
int ix;
TYPE itself and its bases. */
static int
-look_for_overrides_r (type, fndecl)
- tree type, fndecl;
+look_for_overrides_r (tree type, tree fndecl)
{
tree fn = look_for_overrides_here (type, fndecl);
if (fn)
once. */
tree
-dfs_unmarked_real_bases_queue_p (binfo, data)
- tree binfo;
- void *data;
+dfs_unmarked_real_bases_queue_p (tree binfo, void *data)
{
if (TREE_VIA_VIRTUAL (binfo))
{
that are marked, rather than unmarked. */
tree
-dfs_marked_real_bases_queue_p (binfo, data)
- tree binfo;
- void *data;
+dfs_marked_real_bases_queue_p (tree binfo, void *data)
{
if (TREE_VIA_VIRTUAL (binfo))
{
bases). */
tree
-dfs_skip_vbases (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+dfs_skip_vbases (tree binfo, void *data ATTRIBUTE_UNUSED)
{
if (TREE_VIA_VIRTUAL (binfo))
return NULL_TREE;
/* Called via dfs_walk from dfs_get_pure_virtuals. */
static tree
-dfs_get_pure_virtuals (binfo, data)
- tree binfo;
- void *data;
+dfs_get_pure_virtuals (tree binfo, void *data)
{
tree type = (tree) data;
/* Set CLASSTYPE_PURE_VIRTUALS for TYPE. */
void
-get_pure_virtuals (type)
- tree type;
+get_pure_virtuals (tree type)
{
tree vbases;
/* DEPTH-FIRST SEARCH ROUTINES. */
tree
-markedp (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
-{
+markedp (tree binfo, void *data ATTRIBUTE_UNUSED)
+{
return BINFO_MARKED (binfo) ? binfo : NULL_TREE;
}
tree
-unmarkedp (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+unmarkedp (tree binfo, void *data ATTRIBUTE_UNUSED)
{
return !BINFO_MARKED (binfo) ? binfo : NULL_TREE;
}
tree
-marked_vtable_pathp (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+marked_vtable_pathp (tree binfo, void *data ATTRIBUTE_UNUSED)
{
return BINFO_VTABLE_PATH_MARKED (binfo) ? binfo : NULL_TREE;
}
tree
-unmarked_vtable_pathp (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+unmarked_vtable_pathp (tree binfo, void *data ATTRIBUTE_UNUSED)
{
return !BINFO_VTABLE_PATH_MARKED (binfo) ? binfo : NULL_TREE;
}
static tree
-marked_pushdecls_p (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+marked_pushdecls_p (tree binfo, void *data ATTRIBUTE_UNUSED)
{
return (CLASS_TYPE_P (BINFO_TYPE (binfo))
&& !dependent_base_p (binfo)
}
static tree
-unmarked_pushdecls_p (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+unmarked_pushdecls_p (tree binfo, void *data ATTRIBUTE_UNUSED)
{
return (CLASS_TYPE_P (BINFO_TYPE (binfo))
&& !dependent_base_p (binfo)
a predicate function (above). */
tree
-dfs_unmark (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+dfs_unmark (tree binfo, void *data ATTRIBUTE_UNUSED)
{
CLEAR_BINFO_MARKED (binfo);
return NULL_TREE;
Ordering is very important, so don't change it. */
static tree
-dfs_get_vbase_types (binfo, data)
- tree binfo;
- void *data;
+dfs_get_vbase_types (tree binfo, void *data)
{
tree type = (tree) data;
inheritance graph order list of BINFOs. */
static tree
-dfs_build_inheritance_graph_order (binfo, data)
- tree binfo;
- void *data;
+dfs_build_inheritance_graph_order (tree binfo, void *data)
{
tree *last_binfo = (tree *) data;
/* Set CLASSTYPE_VBASECLASSES for TYPE. */
void
-get_vbase_types (type)
- tree type;
+get_vbase_types (tree type)
{
tree last_binfo;
/* Called from find_vbase_instance via dfs_walk. */
static tree
-dfs_find_vbase_instance (binfo, data)
- tree binfo;
- void *data;
+dfs_find_vbase_instance (tree binfo, void *data)
{
tree base = TREE_VALUE ((tree) data);
hierarchy dominated by TYPE. */
tree
-find_vbase_instance (base, type)
- tree base;
- tree type;
+find_vbase_instance (tree base, tree type)
{
tree instance;
linker. */
void
-maybe_suppress_debug_info (t)
- tree t;
+maybe_suppress_debug_info (tree t)
{
/* We can't do the usual TYPE_DECL_SUPPRESS_DEBUG thing with DWARF, which
does not support name references between translation units. It supports
information anyway. */
static tree
-dfs_debug_mark (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+dfs_debug_mark (tree binfo, void *data ATTRIBUTE_UNUSED)
{
tree t = BINFO_TYPE (binfo);
info for this base class. */
static tree
-dfs_debug_unmarkedp (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+dfs_debug_unmarkedp (tree binfo, void *data ATTRIBUTE_UNUSED)
{
return (!CLASSTYPE_DEBUG_REQUESTED (BINFO_TYPE (binfo))
? binfo : NULL_TREE);
the vtables themselves, were optimized away. */
void
-note_debug_info_needed (type)
- tree type;
+note_debug_info_needed (tree type)
{
if (TYPE_DECL_SUPPRESS_DEBUG (TYPE_NAME (type)))
{
because it (or one of the intermediate bases) depends on template parms. */
static int
-dependent_base_p (binfo)
- tree binfo;
+dependent_base_p (tree binfo)
{
for (; binfo; binfo = BINFO_INHERITANCE_CHAIN (binfo))
{
}
static void
-setup_class_bindings (name, type_binding_p)
- tree name;
- int type_binding_p;
+setup_class_bindings (tree name, int type_binding_p)
{
tree type_binding = NULL_TREE;
tree value_binding;
if (type_binding_p)
{
type_binding = lookup_member (current_class_type, name,
- /*protect=*/2,
- /*want_type=*/1);
+ /*protect=*/2, /*want_type=*/true);
if (TREE_CODE (type_binding) == TREE_LIST
&& TREE_TYPE (type_binding) == error_mark_node)
/* NAME is ambiguous. */
/* Now, do the value binding. */
value_binding = lookup_member (current_class_type, name,
- /*protect=*/2,
- /*want_type=*/0);
+ /*protect=*/2, /*want_type=*/false);
if (type_binding_p
&& (TREE_CODE (value_binding) == TYPE_DECL
are TYPE_DECLS. */
static tree
-dfs_push_type_decls (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+dfs_push_type_decls (tree binfo, void *data ATTRIBUTE_UNUSED)
{
tree type;
tree fields;
are not TYPE_DECLS. */
static tree
-dfs_push_decls (binfo, data)
- tree binfo;
- void *data;
+dfs_push_decls (tree binfo, void *data)
{
tree type;
tree method_vec;
message. */
void
-push_class_decls (type)
- tree type;
+push_class_decls (tree type)
{
search_stack = push_search_level (search_stack, &search_obstack);
/* Here's a subroutine we need because C lacks lambdas. */
static tree
-dfs_unuse_fields (binfo, data)
- tree binfo;
- void *data ATTRIBUTE_UNUSED;
+dfs_unuse_fields (tree binfo, void *data ATTRIBUTE_UNUSED)
{
tree type = TREE_TYPE (binfo);
tree fields;
}
void
-unuse_fields (type)
- tree type;
+unuse_fields (tree type)
{
dfs_walk (TYPE_BINFO (type), dfs_unuse_fields, unmarkedp, 0);
}
}
static tree
-add_conversions (binfo, data)
- tree binfo;
- void *data;
+add_conversions (tree binfo, void *data)
{
int i;
tree method_vec = CLASSTYPE_METHOD_VEC (BINFO_TYPE (binfo));
from which the conversion functions in this node were selected. */
tree
-lookup_conversions (type)
- tree type;
+lookup_conversions (tree type)
{
tree t;
tree conversions = NULL_TREE;
at offset 0 in COMPARE_TYPE, and set found_overlap if so. */
static tree
-dfs_check_overlap (empty_binfo, data)
- tree empty_binfo;
- void *data;
+dfs_check_overlap (tree empty_binfo, void *data)
{
struct overlap_info *oi = (struct overlap_info *) data;
tree binfo;
/* Trivial function to stop base traversal when we find something. */
static tree
-dfs_no_overlap_yet (binfo, data)
- tree binfo;
- void *data;
+dfs_no_overlap_yet (tree binfo, void *data)
{
struct overlap_info *oi = (struct overlap_info *) data;
return !oi->found_overlap ? binfo : NULL_TREE;
offset 0 in NEXT_TYPE. Used in laying out empty base class subobjects. */
int
-types_overlap_p (empty_type, next_type)
- tree empty_type, next_type;
+types_overlap_p (tree empty_type, tree next_type)
{
struct overlap_info oi;
FIXME: This does not work with the new ABI. */
tree
-binfo_for_vtable (var)
- tree var;
+binfo_for_vtable (tree var)
{
tree main_binfo = TYPE_BINFO (DECL_CONTEXT (var));
tree binfos = TYPE_BINFO_BASETYPES (BINFO_TYPE (main_binfo));
from BINFO, or NULL if binfo is not via virtual. */
tree
-binfo_from_vbase (binfo)
- tree binfo;
+binfo_from_vbase (tree binfo)
{
for (; binfo; binfo = BINFO_INHERITANCE_CHAIN (binfo))
{
via virtual. */
tree
-binfo_via_virtual (binfo, limit)
- tree binfo;
- tree limit;
+binfo_via_virtual (tree binfo, tree limit)
{
for (; binfo && (!limit || !same_type_p (BINFO_TYPE (binfo), limit));
binfo = BINFO_INHERITANCE_CHAIN (binfo))
C from the CLASSTYPE_VBASECLASSES list. */
tree
-binfo_for_vbase (basetype, classtype)
- tree basetype;
- tree classtype;
+binfo_for_vbase (tree basetype, tree classtype)
{
tree binfo;