name-lookup.c (is_associated_namespace): Convert local variables to be VECs instead of TREE_LISTs.
* name-lookup.c (is_associated_namespace): Convert local variables to be VECs instead of TREE_LISTs. From-SVN: r163034
This commit is contained in:
parent
f38958e826
commit
d4ccba6615
@ -1,3 +1,8 @@
|
||||
2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* name-lookup.c (is_associated_namespace): Convert local variables
|
||||
to be VECs instead of TREE_LISTs.
|
||||
|
||||
2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* tree.c (varargs_function_p): Use stdarg_p.
|
||||
|
@ -4659,25 +4659,38 @@ add_function (struct arg_lookup *k, tree fn)
|
||||
bool
|
||||
is_associated_namespace (tree current, tree scope)
|
||||
{
|
||||
tree seen = NULL_TREE;
|
||||
tree todo = NULL_TREE;
|
||||
VEC(tree,gc) *seen = make_tree_vector ();
|
||||
VEC(tree,gc) *todo = make_tree_vector ();
|
||||
tree t;
|
||||
bool ret;
|
||||
|
||||
while (1)
|
||||
{
|
||||
if (scope == current)
|
||||
return true;
|
||||
seen = tree_cons (scope, NULL_TREE, seen);
|
||||
for (t = DECL_NAMESPACE_ASSOCIATIONS (scope); t; t = TREE_CHAIN (t))
|
||||
if (!purpose_member (TREE_PURPOSE (t), seen))
|
||||
todo = tree_cons (TREE_PURPOSE (t), NULL_TREE, todo);
|
||||
if (todo)
|
||||
{
|
||||
scope = TREE_PURPOSE (todo);
|
||||
todo = TREE_CHAIN (todo);
|
||||
ret = true;
|
||||
break;
|
||||
}
|
||||
VEC_safe_push (tree, gc, seen, scope);
|
||||
for (t = DECL_NAMESPACE_ASSOCIATIONS (scope); t; t = TREE_CHAIN (t))
|
||||
if (!vec_member (TREE_PURPOSE (t), seen))
|
||||
VEC_safe_push (tree, gc, todo, TREE_PURPOSE (t));
|
||||
if (!VEC_empty (tree, todo))
|
||||
{
|
||||
scope = VEC_last (tree, todo);
|
||||
VEC_pop (tree, todo);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
{
|
||||
ret = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
release_tree_vector (seen);
|
||||
release_tree_vector (todo);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Add functions of a namespace to the lookup structure.
|
||||
|
Loading…
Reference in New Issue
Block a user