cp-tree.h (struct saved_scope): Change decl_ns_list field type to a VEC.
* cp-tree.h (struct saved_scope): Change decl_ns_list field type to a VEC. * decl2.c (cp_write_global_declarations): Adjust for new type of decl_namespace_list. * name-lookup.c (current_decl_namespace): Likewise. (push_decl_namespace): Likewise. (pop_decl_namespace): Likewise. From-SVN: r160487
This commit is contained in:
parent
0244e6f7e0
commit
2a4449a3b5
|
@ -1,3 +1,13 @@
|
|||
2010-06-09 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* cp-tree.h (struct saved_scope): Change decl_ns_list field type
|
||||
to a VEC.
|
||||
* decl2.c (cp_write_global_declarations): Adjust for new type of
|
||||
decl_namespace_list.
|
||||
* name-lookup.c (current_decl_namespace): Likewise.
|
||||
(push_decl_namespace): Likewise.
|
||||
(pop_decl_namespace): Likewise.
|
||||
|
||||
2010-06-09 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* call.c (build_java_interface_fn_ref): Call build_function_type_list
|
||||
|
|
|
@ -896,7 +896,7 @@ extern GTY(()) tree cp_global_trees[CPTI_MAX];
|
|||
struct GTY(()) saved_scope {
|
||||
VEC(cxx_saved_binding,gc) *old_bindings;
|
||||
tree old_namespace;
|
||||
tree decl_ns_list;
|
||||
VEC(tree,gc) *decl_ns_list;
|
||||
tree class_name;
|
||||
tree class_type;
|
||||
tree access_specifier;
|
||||
|
|
|
@ -3586,7 +3586,8 @@ cp_write_global_declarations (void)
|
|||
at_eof = 1;
|
||||
|
||||
/* Bad parse errors. Just forget about it. */
|
||||
if (! global_bindings_p () || current_class_type || decl_namespace_list)
|
||||
if (! global_bindings_p () || current_class_type
|
||||
|| !VEC_empty (tree,decl_namespace_list))
|
||||
return;
|
||||
|
||||
if (pch_file)
|
||||
|
|
|
@ -3195,8 +3195,8 @@ current_decl_namespace (void)
|
|||
{
|
||||
tree result;
|
||||
/* If we have been pushed into a different namespace, use it. */
|
||||
if (decl_namespace_list)
|
||||
return TREE_PURPOSE (decl_namespace_list);
|
||||
if (!VEC_empty (tree, decl_namespace_list))
|
||||
return VEC_last (tree, decl_namespace_list);
|
||||
|
||||
if (current_class_type)
|
||||
result = decl_namespace_context (current_class_type);
|
||||
|
@ -3380,8 +3380,7 @@ push_decl_namespace (tree decl)
|
|||
{
|
||||
if (TREE_CODE (decl) != NAMESPACE_DECL)
|
||||
decl = decl_namespace_context (decl);
|
||||
decl_namespace_list = tree_cons (ORIGINAL_NAMESPACE (decl),
|
||||
NULL_TREE, decl_namespace_list);
|
||||
VEC_safe_push (tree, gc, decl_namespace_list, ORIGINAL_NAMESPACE (decl));
|
||||
}
|
||||
|
||||
/* [namespace.memdef]/2 */
|
||||
|
@ -3389,7 +3388,7 @@ push_decl_namespace (tree decl)
|
|||
void
|
||||
pop_decl_namespace (void)
|
||||
{
|
||||
decl_namespace_list = TREE_CHAIN (decl_namespace_list);
|
||||
VEC_pop (tree, decl_namespace_list);
|
||||
}
|
||||
|
||||
/* Return the namespace that is the common ancestor
|
||||
|
|
Loading…
Reference in New Issue