Commit 2a4449a3 by Nathan Froyd Committed by Nathan Froyd

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
parent 0244e6f7
2010-06-09 Nathan Froyd <froydnj@codesourcery.com> 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 * call.c (build_java_interface_fn_ref): Call build_function_type_list
instead of build_function_type. instead of build_function_type.
* decl.c (cxx_init_decl_processing): Likewise. * decl.c (cxx_init_decl_processing): Likewise.
......
...@@ -896,7 +896,7 @@ extern GTY(()) tree cp_global_trees[CPTI_MAX]; ...@@ -896,7 +896,7 @@ extern GTY(()) tree cp_global_trees[CPTI_MAX];
struct GTY(()) saved_scope { struct GTY(()) saved_scope {
VEC(cxx_saved_binding,gc) *old_bindings; VEC(cxx_saved_binding,gc) *old_bindings;
tree old_namespace; tree old_namespace;
tree decl_ns_list; VEC(tree,gc) *decl_ns_list;
tree class_name; tree class_name;
tree class_type; tree class_type;
tree access_specifier; tree access_specifier;
......
...@@ -3586,7 +3586,8 @@ cp_write_global_declarations (void) ...@@ -3586,7 +3586,8 @@ cp_write_global_declarations (void)
at_eof = 1; at_eof = 1;
/* Bad parse errors. Just forget about it. */ /* 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; return;
if (pch_file) if (pch_file)
......
...@@ -3195,8 +3195,8 @@ current_decl_namespace (void) ...@@ -3195,8 +3195,8 @@ current_decl_namespace (void)
{ {
tree result; tree result;
/* If we have been pushed into a different namespace, use it. */ /* If we have been pushed into a different namespace, use it. */
if (decl_namespace_list) if (!VEC_empty (tree, decl_namespace_list))
return TREE_PURPOSE (decl_namespace_list); return VEC_last (tree, decl_namespace_list);
if (current_class_type) if (current_class_type)
result = decl_namespace_context (current_class_type); result = decl_namespace_context (current_class_type);
...@@ -3380,8 +3380,7 @@ push_decl_namespace (tree decl) ...@@ -3380,8 +3380,7 @@ push_decl_namespace (tree decl)
{ {
if (TREE_CODE (decl) != NAMESPACE_DECL) if (TREE_CODE (decl) != NAMESPACE_DECL)
decl = decl_namespace_context (decl); decl = decl_namespace_context (decl);
decl_namespace_list = tree_cons (ORIGINAL_NAMESPACE (decl), VEC_safe_push (tree, gc, decl_namespace_list, ORIGINAL_NAMESPACE (decl));
NULL_TREE, decl_namespace_list);
} }
/* [namespace.memdef]/2 */ /* [namespace.memdef]/2 */
...@@ -3389,7 +3388,7 @@ push_decl_namespace (tree decl) ...@@ -3389,7 +3388,7 @@ push_decl_namespace (tree decl)
void void
pop_decl_namespace (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 /* Return the namespace that is the common ancestor
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment