, tree, bool want_type = false); extern tree *find_member_slot (tree klass, tree name); extern tree *add_member_slot (tree klass, tree name); extern void resort_type_member_vec (void *, void *, gt_pointer_operator, void *); extern vec *set_class_bindings (tree, int extra = 0); extern void insert_late_enum_def_bindings (tree, tree); extern tree innermost_non_namespace_value (tree); extern bool decl_in_scope_p (tree); extern cxx_binding *outer_binding (tree, cxx_binding *, bool); extern void cp_emit_debug_info_for_using (tree, tree); extern void finish_nonmember_using_decl (tree scope, tree name); extern void finish_using_directive (tree target, tree attribs); void push_local_extern_decl_alias (tree decl); extern tree pushdecl (tree, bool hiding = false); extern tree pushdecl_outermost_localscope (tree); extern tree pushdecl_top_level (tree); extern tree pushdecl_top_level_and_finish (tree, tree); extern tree pushtag (tree, tree, TAG_how = TAG_how::CURRENT_ONLY); extern int push_namespace (tree, bool make_inline = false); 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); extern bool maybe_push_to_top_level (tree); extern void maybe_pop_from_top_level (bool); extern void push_using_decl_bindings (tree, tree); /* Lower level interface for modules. */ extern tree *mergeable_namespace_slots (tree ns, tree name, bool is_attached, tree *mvec); extern void add_mergeable_namespace_entity (tree *slot, tree decl); extern tree lookup_class_binding (tree ctx, tree name); extern bool import_module_binding (tree ctx, tree name, unsigned mod, unsigned snum); extern bool set_module_binding (tree ctx, tree name, unsigned mod, bool global_p, bool partition_p, tree value, tree type, tree visible); extern void add_module_namespace_decl (tree ns, tree decl); enum WMB_Flags { WMB_None = 0, WMB_Dups = 1 << 0, WMB_Export = 1 << 1, WMB_Using = 1 << 2, WMB_Hidden = 1 << 3, WMB_Purview = 1 << 4, }; extern unsigned walk_module_binding (tree binding, bitmap partitions, bool (*)(tree decl, WMB_Flags, void *data), void *data); extern tree add_imported_namespace (tree ctx, tree name, location_t, unsigned module, bool inline_p, bool visible_p); extern const char *get_cxx_dialect_name (enum cxx_dialect dialect); #endif /* GCC_CP_NAME_LOOKUP_H */