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:
Nathan Froyd 2010-08-09 14:28:47 +00:00 committed by Nathan Froyd
parent f38958e826
commit d4ccba6615
2 changed files with 29 additions and 11 deletions

View File

@ -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.

View File

@ -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.