diff options
Diffstat (limited to 'gcc/cp/name-lookup.h')
-rw-r--r-- | gcc/cp/name-lookup.h | 65 |
1 files changed, 55 insertions, 10 deletions
diff --git a/gcc/cp/name-lookup.h b/gcc/cp/name-lookup.h index 15f1936ebf2..7153cbecfeb 100644 --- a/gcc/cp/name-lookup.h +++ b/gcc/cp/name-lookup.h @@ -46,12 +46,6 @@ struct binding_entry_s GTY(()) #define NAMESPACE_STD_HT_SIZE (1 << 8) #define GLOBAL_SCOPE_HT_SIZE (1 << 8) -extern binding_table binding_table_new (size_t); -extern void binding_table_free (binding_table); -extern void binding_table_insert (binding_table, tree, tree); -extern tree binding_table_find_anon_type (binding_table, tree); -extern binding_entry binding_table_reverse_maybe_remap (binding_table, - tree, tree); extern void binding_table_remove_anonymous_types (binding_table); extern void binding_table_foreach (binding_table, bt_foreach_proc, void *); extern binding_entry binding_table_find (binding_table, tree); @@ -93,9 +87,10 @@ struct cxx_binding GTY(()) unsigned is_local : 1; }; -extern cxx_binding *cxx_binding_make (tree, tree); -extern void cxx_binding_free (cxx_binding *); -extern bool supplement_binding (cxx_binding *, tree); +extern tree identifier_type_value (tree); +extern void set_identifier_type_value (tree, tree); +extern void pop_binding (tree, tree); +extern void clear_identifier_class_values (void); /* The kinds of scopes we recognize. */ typedef enum scope_kind { @@ -246,16 +241,66 @@ struct cp_binding_level GTY(()) /* The tree node representing the global scope. */ extern GTY(()) tree global_namespace; +extern GTY(()) tree global_scope_name; + +/* Indicates that there is a type value in some namespace, although + that is not necessarily in scope at the moment. */ + +extern GTY(()) tree global_type_node; /* True if SCOPE designates the global scope binding contour. */ #define global_scope_p(SCOPE) \ ((SCOPE) == NAMESPACE_LEVEL (global_namespace)) +extern cxx_scope *leave_scope (void); +extern bool kept_level_p (void); +extern int global_bindings_p (void); +extern bool toplevel_bindings_p (void); +extern bool namespace_bindings_p (void); +extern bool template_parm_scope_p (void); +extern scope_kind innermost_scope_kind (void); +extern cxx_scope *begin_scope (scope_kind, tree); +extern void print_binding_stack (void); +extern void print_binding_level (cxx_scope *); +extern void push_to_top_level (void); +extern void pop_from_top_level (void); +extern void maybe_push_to_top_level (int); +extern void pop_everything (void); +extern void keep_next_level (bool); + +extern void push_namespace (tree); +extern void pop_namespace (void); +extern void push_nested_namespace (tree); +extern void pop_nested_namespace (tree); +extern tree push_using_directive (tree); +extern void pushlevel_class (void); +extern void poplevel_class (void); extern cxx_binding *cxx_scope_find_binding_for_name (cxx_scope *, tree); extern cxx_binding *binding_for_name (cxx_scope *, tree); - +extern tree pushdecl_with_scope (tree, cxx_scope *); +extern tree lookup_tag (enum tree_code, tree, cxx_scope *, int); +extern tree lookup_tag_reverse (tree, tree); +extern tree lookup_name (tree, int); +extern tree lookup_name_real (tree, int, int, int, int); +extern tree lookup_name_current_level (tree); +extern tree lookup_type_current_level (tree); extern tree namespace_binding (tree, tree); +extern void add_decl_to_level (tree, cxx_scope *); extern void set_namespace_binding (tree, tree, tree); +extern tree lookup_namespace_name (tree, tree); +extern tree unqualified_namespace_lookup (tree, int, tree *); +extern tree lookup_qualified_name (tree, tree, bool, bool); +extern tree lookup_name_nonclass (tree); +extern tree lookup_function_nonclass (tree, tree); +extern void push_local_binding (tree, tree, int); +extern int push_class_binding (tree, tree); +extern bool pushdecl_class_level (tree); +extern tree pushdecl_namespace_level (tree); +extern bool push_class_level_binding (tree, tree); +extern void storetags (tree); +extern tree getdecls (void); +extern tree cp_namespace_decls (tree); +extern void set_class_shadows (tree); /* Set *DECL to the (non-hidden) declaration for ID at global scope, |