Commit 056a17ee by Nathan Sidwell Committed by Nathan Sidwell

cp-tree.h (pushdecl, [...]): Move declarations to ...

	* cp-tree.h (pushdecl, pushdecl_maybe_friend, pushtag)
	pushtag_top_level_maybe_friend,
	pushdecl_top_level_and_finish):	Move declarations to ...
	* name-lookup.h: ... here.  Group pushdecl variants.
	(pushdecl_top_level_and_finish): Rename to ...
	(pushdecl_top_level_with_init): ... here.
	* decl.c (cp_make_fname_decl): Use pushdecl_top_level_with_init.
	* decl2.c (get_guard, handle_tls_init): Likewise.
	* rtti.c (get_tinfo_decl, tinfo_base_init): Likewise.
	* lambda.c (maybe_add_lambda_conv_op): Use namespace_bindings_p.
	* method.c (implicitly_declare_fn): Likewise.
	* searchc (node_debug_info_needed): Likewise.
	* name-lookup.c (pushdecl_top_level_and_finish): Rename to ...
	(pushdecl_top_level_with_init): ... here.
	(pop_everything): Use namespace_bindings_p.
(--This line, and those below, will be ignored--

M    cp/ChangeLog
M    cp/method.c
M    cp/cp-tree.h
M    cp/decl.c
M    cp/lambda.c
M    cp/rtti.c
M    cp/name-lookup.c
M    cp/decl2.c
M    cp/name-lookup.h
M    cp/search.c

From-SVN: r247902
parent 9c82d7b6
2017-05-11 Nathan Sidwell <nathan@acm.org> 2017-05-11 Nathan Sidwell <nathan@acm.org>
* cp-tree.h (pushdecl, pushdecl_maybe_friend, pushtag,
pushtag_top_level_maybe_friend,
pushdecl_top_level_and_finish): Move declarations to ...
* name-lookup.h: ... here. Group pushdecl variants.
(pushdecl_top_level_and_finish): Rename to ...
(pushdecl_top_level_with_init): ... here.
* decl.c (cp_make_fname_decl): Use pushdecl_top_level_with_init.
* decl2.c (get_guard, handle_tls_init): Likewise.
* rtti.c (get_tinfo_decl, tinfo_base_init): Likewise.
* lambda.c (maybe_add_lambda_conv_op): Use namespace_bindings_p.
* method.c (implicitly_declare_fn): Likewise.
* searchc (node_debug_info_needed): Likewise.
* name-lookup.c (pushdecl_top_level_and_finish): Rename to ...
(pushdecl_top_level_with_init): ... here.
(pop_everything): Use namespace_bindings_p.
* name-lookup.h (pop_binding): Rename to pop_local_binding. * name-lookup.h (pop_binding): Rename to pop_local_binding.
(getdecls): Rename to get_local_decls. (getdecls): Rename to get_local_decls.
* name-lookup.c (pop_binding): Rename to ... * name-lookup.c (pop_binding): Rename to ...
......
...@@ -5820,13 +5820,8 @@ extern bool fnptr_conv_p (tree, tree); ...@@ -5820,13 +5820,8 @@ extern bool fnptr_conv_p (tree, tree);
extern tree strip_fnptr_conv (tree); extern tree strip_fnptr_conv (tree);
/* in name-lookup.c */ /* in name-lookup.c */
extern tree pushdecl (tree);
extern tree pushdecl_maybe_friend (tree, bool);
extern void maybe_push_cleanup_level (tree); extern void maybe_push_cleanup_level (tree);
extern tree pushtag (tree, tree, tag_scope);
extern tree make_anon_name (void); extern tree make_anon_name (void);
extern tree pushdecl_top_level_maybe_friend (tree, bool);
extern tree pushdecl_top_level_and_finish (tree, tree);
extern tree check_for_out_of_scope_variable (tree); extern tree check_for_out_of_scope_variable (tree);
extern void dump (cp_binding_level &ref); extern void dump (cp_binding_level &ref);
extern void dump (cp_binding_level *ptr); extern void dump (cp_binding_level *ptr);
......
...@@ -4342,7 +4342,7 @@ cp_make_fname_decl (location_t loc, tree id, int type_dep) ...@@ -4342,7 +4342,7 @@ cp_make_fname_decl (location_t loc, tree id, int type_dep)
else else
{ {
DECL_THIS_STATIC (decl) = true; DECL_THIS_STATIC (decl) = true;
pushdecl_top_level_and_finish (decl, init); pushdecl_top_level_with_init (decl, init);
} }
return decl; return decl;
......
...@@ -3021,7 +3021,7 @@ get_guard (tree decl) ...@@ -3021,7 +3021,7 @@ get_guard (tree decl)
DECL_ARTIFICIAL (guard) = 1; DECL_ARTIFICIAL (guard) = 1;
DECL_IGNORED_P (guard) = 1; DECL_IGNORED_P (guard) = 1;
TREE_USED (guard) = 1; TREE_USED (guard) = 1;
pushdecl_top_level_and_finish (guard, NULL_TREE); pushdecl_top_level_with_init (guard, NULL_TREE);
} }
return guard; return guard;
} }
...@@ -4261,7 +4261,7 @@ handle_tls_init (void) ...@@ -4261,7 +4261,7 @@ handle_tls_init (void)
TREE_USED (guard) = true; TREE_USED (guard) = true;
CP_DECL_THREAD_LOCAL_P (guard) = true; CP_DECL_THREAD_LOCAL_P (guard) = true;
set_decl_tls_model (guard, decl_default_tls_model (guard)); set_decl_tls_model (guard, decl_default_tls_model (guard));
pushdecl_top_level_and_finish (guard, NULL_TREE); pushdecl_top_level_with_init (guard, NULL_TREE);
tree fn = get_local_tls_init_fn (); tree fn = get_local_tls_init_fn ();
start_preparsed_function (fn, NULL_TREE, SF_PRE_PARSED); start_preparsed_function (fn, NULL_TREE, SF_PRE_PARSED);
......
...@@ -1098,7 +1098,7 @@ maybe_add_lambda_conv_op (tree type) ...@@ -1098,7 +1098,7 @@ maybe_add_lambda_conv_op (tree type)
SET_OVERLOADED_OPERATOR_CODE (fn, TYPE_EXPR); SET_OVERLOADED_OPERATOR_CODE (fn, TYPE_EXPR);
grokclassfn (type, fn, NO_SPECIAL); grokclassfn (type, fn, NO_SPECIAL);
set_linkage_according_to_type (type, fn); set_linkage_according_to_type (type, fn);
rest_of_decl_compilation (fn, toplevel_bindings_p (), at_eof); rest_of_decl_compilation (fn, namespace_bindings_p (), at_eof);
DECL_IN_AGGR_P (fn) = 1; DECL_IN_AGGR_P (fn) = 1;
DECL_ARTIFICIAL (fn) = 1; DECL_ARTIFICIAL (fn) = 1;
DECL_NOT_REALLY_EXTERN (fn) = 1; DECL_NOT_REALLY_EXTERN (fn) = 1;
...@@ -1128,7 +1128,7 @@ maybe_add_lambda_conv_op (tree type) ...@@ -1128,7 +1128,7 @@ maybe_add_lambda_conv_op (tree type)
DECL_SOURCE_LOCATION (fn) = DECL_SOURCE_LOCATION (callop); DECL_SOURCE_LOCATION (fn) = DECL_SOURCE_LOCATION (callop);
grokclassfn (type, fn, NO_SPECIAL); grokclassfn (type, fn, NO_SPECIAL);
set_linkage_according_to_type (type, fn); set_linkage_according_to_type (type, fn);
rest_of_decl_compilation (fn, toplevel_bindings_p (), at_eof); rest_of_decl_compilation (fn, namespace_bindings_p (), at_eof);
DECL_IN_AGGR_P (fn) = 1; DECL_IN_AGGR_P (fn) = 1;
DECL_ARTIFICIAL (fn) = 1; DECL_ARTIFICIAL (fn) = 1;
DECL_NOT_REALLY_EXTERN (fn) = 1; DECL_NOT_REALLY_EXTERN (fn) = 1;
......
...@@ -2096,7 +2096,7 @@ implicitly_declare_fn (special_function_kind kind, tree type, ...@@ -2096,7 +2096,7 @@ implicitly_declare_fn (special_function_kind kind, tree type,
set_linkage_according_to_type (type, fn); set_linkage_according_to_type (type, fn);
if (TREE_PUBLIC (fn)) if (TREE_PUBLIC (fn))
DECL_COMDAT (fn) = 1; DECL_COMDAT (fn) = 1;
rest_of_decl_compilation (fn, toplevel_bindings_p (), at_eof); rest_of_decl_compilation (fn, namespace_bindings_p (), at_eof);
gcc_assert (!TREE_USED (fn)); gcc_assert (!TREE_USED (fn));
/* Propagate constraints from the inherited constructor. */ /* Propagate constraints from the inherited constructor. */
......
...@@ -4588,7 +4588,7 @@ pushdecl_top_level_maybe_friend (tree x, bool is_friend) ...@@ -4588,7 +4588,7 @@ pushdecl_top_level_maybe_friend (tree x, bool is_friend)
initializing it with INIT. */ initializing it with INIT. */
tree tree
pushdecl_top_level_and_finish (tree x, tree init) pushdecl_top_level_with_init (tree x, tree init)
{ {
return pushdecl_top_level_1 (x, &init, false); return pushdecl_top_level_1 (x, &init, false);
} }
...@@ -6618,7 +6618,7 @@ pop_everything (void) ...@@ -6618,7 +6618,7 @@ pop_everything (void)
{ {
if (ENABLE_SCOPE_CHECKING) if (ENABLE_SCOPE_CHECKING)
verbatim ("XXX entering pop_everything ()\n"); verbatim ("XXX entering pop_everything ()\n");
while (!toplevel_bindings_p ()) while (!namespace_bindings_p ())
{ {
if (current_binding_level->kind == sk_class) if (current_binding_level->kind == sk_class)
pop_nested_class (); pop_nested_class ();
......
...@@ -289,22 +289,15 @@ extern bool template_parm_scope_p (void); ...@@ -289,22 +289,15 @@ extern bool template_parm_scope_p (void);
extern scope_kind innermost_scope_kind (void); extern scope_kind innermost_scope_kind (void);
extern cp_binding_level *begin_scope (scope_kind, tree); extern cp_binding_level *begin_scope (scope_kind, tree);
extern void print_binding_stack (void); extern void print_binding_stack (void);
extern void push_to_top_level (void);
extern void pop_from_top_level (void);
extern void pop_everything (void); extern void pop_everything (void);
extern void keep_next_level (bool); extern void keep_next_level (bool);
extern bool is_ancestor (tree, tree); extern bool is_ancestor (tree ancestor, tree descendant);
extern tree push_scope (tree); extern tree push_scope (tree);
extern void pop_scope (tree); extern void pop_scope (tree);
extern tree push_inner_scope (tree); extern tree push_inner_scope (tree);
extern void pop_inner_scope (tree, tree); extern void pop_inner_scope (tree, tree);
extern void push_binding_level (cp_binding_level *); extern void push_binding_level (cp_binding_level *);
extern tree pushdecl_outermost_localscope (tree);
extern bool push_namespace (tree);
extern void pop_namespace (void);
extern void push_nested_namespace (tree);
extern void pop_nested_namespace (tree);
extern bool handle_namespace_attrs (tree, tree); extern bool handle_namespace_attrs (tree, tree);
extern void pushlevel_class (void); extern void pushlevel_class (void);
extern void poplevel_class (void); extern void poplevel_class (void);
...@@ -342,6 +335,18 @@ extern tree innermost_non_namespace_value (tree); ...@@ -342,6 +335,18 @@ extern tree innermost_non_namespace_value (tree);
extern cxx_binding *outer_binding (tree, cxx_binding *, bool); extern cxx_binding *outer_binding (tree, cxx_binding *, bool);
extern void cp_emit_debug_info_for_using (tree, tree); extern void cp_emit_debug_info_for_using (tree, tree);
extern tree pushdecl_maybe_friend (tree, bool is_friend);
extern tree pushdecl (tree);
extern tree pushdecl_outermost_localscope (tree);
extern tree pushdecl_top_level_maybe_friend (tree, bool is_friend);
extern tree pushdecl_top_level (tree); extern tree pushdecl_top_level (tree);
extern tree pushdecl_top_level_with_init (tree, tree);
extern tree pushtag (tree, tree, tag_scope);
extern bool push_namespace (tree);
extern void pop_namespace (void);
extern void push_nested_namespace (tree);
extern void pop_nested_namespace (tree);
extern void push_to_top_level (void);
extern void pop_from_top_level (void);
#endif /* GCC_CP_NAME_LOOKUP_H */ #endif /* GCC_CP_NAME_LOOKUP_H */
...@@ -445,7 +445,7 @@ get_tinfo_decl (tree type) ...@@ -445,7 +445,7 @@ get_tinfo_decl (tree type)
DECL_NOT_REALLY_EXTERN (d) = 1; DECL_NOT_REALLY_EXTERN (d) = 1;
set_linkage_according_to_type (type, d); set_linkage_according_to_type (type, d);
d = pushdecl_top_level_and_finish (d, NULL_TREE); d = pushdecl_top_level_with_init (d, NULL_TREE);
if (CLASS_TYPE_P (type)) if (CLASS_TYPE_P (type))
CLASSTYPE_TYPEINFO_VAR (TYPE_MAIN_VARIANT (type)) = d; CLASSTYPE_TYPEINFO_VAR (TYPE_MAIN_VARIANT (type)) = d;
...@@ -911,7 +911,7 @@ tinfo_base_init (tinfo_s *ti, tree target) ...@@ -911,7 +911,7 @@ tinfo_base_init (tinfo_s *ti, tree target)
name_string = tinfo_name (target, !TREE_PUBLIC (name_decl)); name_string = tinfo_name (target, !TREE_PUBLIC (name_decl));
DECL_INITIAL (name_decl) = name_string; DECL_INITIAL (name_decl) = name_string;
mark_used (name_decl); mark_used (name_decl);
pushdecl_top_level_and_finish (name_decl, name_string); pushdecl_top_level_with_init (name_decl, name_string);
} }
vtable_ptr = ti->vtable; vtable_ptr = ti->vtable;
......
...@@ -2365,7 +2365,7 @@ note_debug_info_needed (tree type) ...@@ -2365,7 +2365,7 @@ note_debug_info_needed (tree type)
if (TYPE_DECL_SUPPRESS_DEBUG (TYPE_NAME (type))) if (TYPE_DECL_SUPPRESS_DEBUG (TYPE_NAME (type)))
{ {
TYPE_DECL_SUPPRESS_DEBUG (TYPE_NAME (type)) = 0; TYPE_DECL_SUPPRESS_DEBUG (TYPE_NAME (type)) = 0;
rest_of_type_compilation (type, toplevel_bindings_p ()); rest_of_type_compilation (type, namespace_bindings_p ());
} }
dfs_walk_all (TYPE_BINFO (type), dfs_debug_mark, NULL, 0); dfs_walk_all (TYPE_BINFO (type), dfs_debug_mark, NULL, 0);
......
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