Mercurial > hg > CbC > CbC_gcc
comparison gcc/cp/name-lookup.h @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* Declarations for C++ name lookup routines. | 1 /* Declarations for -*- C++ -*- name lookup routines. |
2 Copyright (C) 2003-2018 Free Software Foundation, Inc. | 2 Copyright (C) 2003-2020 Free Software Foundation, Inc. |
3 Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net> | 3 Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net> |
4 | 4 |
5 This file is part of GCC. | 5 This file is part of GCC. |
6 | 6 |
7 GCC is free software; you can redistribute it and/or modify | 7 GCC is free software; you can redistribute it and/or modify |
174 and typedef types. These are in the reverse of the order | 174 and typedef types. These are in the reverse of the order |
175 supplied. There may be OVERLOADs on this list, too, but they | 175 supplied. There may be OVERLOADs on this list, too, but they |
176 are wrapped in TREE_LISTs; the TREE_VALUE is the OVERLOAD. */ | 176 are wrapped in TREE_LISTs; the TREE_VALUE is the OVERLOAD. */ |
177 tree names; | 177 tree names; |
178 | 178 |
179 /* A list of USING_DECL nodes. */ | |
180 tree usings; | |
181 | |
182 /* Using directives. */ | 179 /* Using directives. */ |
183 vec<tree, va_gc> *using_directives; | 180 vec<tree, va_gc> *using_directives; |
184 | 181 |
185 /* For the binding level corresponding to a class, the entities | 182 /* For the binding level corresponding to a class, the entities |
186 declared in the class or its base classes. */ | 183 declared in the class or its base classes. */ |
234 on leaving the class definition to allow for the scope | 231 on leaving the class definition to allow for the scope |
235 to be subsequently re-used as a non-defining scope for | 232 to be subsequently re-used as a non-defining scope for |
236 'this_entity'. */ | 233 'this_entity'. */ |
237 unsigned defining_class_p : 1; | 234 unsigned defining_class_p : 1; |
238 | 235 |
239 /* 23 bits left to fill a 32-bit word. */ | 236 /* true for SK_FUNCTION_PARMS of immediate functions. */ |
237 unsigned immediate_fn_ctx_p : 1; | |
238 | |
239 /* 22 bits left to fill a 32-bit word. */ | |
240 }; | 240 }; |
241 | 241 |
242 /* The binding level currently in effect. */ | 242 /* The binding level currently in effect. */ |
243 | 243 |
244 #define current_binding_level \ | 244 #define current_binding_level \ |
285 extern void set_global_binding (tree decl); | 285 extern void set_global_binding (tree decl); |
286 inline tree get_global_binding (tree id) | 286 inline tree get_global_binding (tree id) |
287 { | 287 { |
288 return get_namespace_binding (NULL_TREE, id); | 288 return get_namespace_binding (NULL_TREE, id); |
289 } | 289 } |
290 extern tree lookup_qualified_name (tree, tree, int, bool, /*hidden*/bool = false); | 290 extern tree lookup_qualified_name (tree, tree, int = 0, bool = true, /*hidden*/bool = false); |
291 extern tree lookup_qualified_name (tree t, const char *p, int = 0, bool = true, bool = false); | |
291 extern tree lookup_name_nonclass (tree); | 292 extern tree lookup_name_nonclass (tree); |
292 extern bool is_local_extern (tree); | 293 extern bool is_local_extern (tree); |
293 extern bool pushdecl_class_level (tree); | 294 extern bool pushdecl_class_level (tree); |
294 extern tree pushdecl_namespace_level (tree, bool); | 295 extern tree pushdecl_namespace_level (tree, bool); |
295 extern bool push_class_level_binding (tree, tree); | 296 extern bool push_class_level_binding (tree, tree); |
301 extern void pop_decl_namespace (void); | 302 extern void pop_decl_namespace (void); |
302 extern void do_namespace_alias (tree, tree); | 303 extern void do_namespace_alias (tree, tree); |
303 extern tree do_class_using_decl (tree, tree); | 304 extern tree do_class_using_decl (tree, tree); |
304 extern tree lookup_arg_dependent (tree, tree, vec<tree, va_gc> *); | 305 extern tree lookup_arg_dependent (tree, tree, vec<tree, va_gc> *); |
305 extern tree search_anon_aggr (tree, tree, bool = false); | 306 extern tree search_anon_aggr (tree, tree, bool = false); |
306 extern tree get_class_binding_direct (tree, tree, int type_or_fns = -1); | 307 extern tree get_class_binding_direct (tree, tree, bool want_type = false); |
307 extern tree get_class_binding (tree, tree, int type_or_fns = -1); | 308 extern tree get_class_binding (tree, tree, bool want_type = false); |
308 extern tree *find_member_slot (tree klass, tree name); | 309 extern tree *find_member_slot (tree klass, tree name); |
309 extern tree *add_member_slot (tree klass, tree name); | 310 extern tree *add_member_slot (tree klass, tree name); |
310 extern void resort_type_member_vec (void *, void *, | 311 extern void resort_type_member_vec (void *, void *, |
311 gt_pointer_operator, void *); | 312 gt_pointer_operator, void *); |
312 extern void set_class_bindings (tree, unsigned extra = 0); | 313 extern void set_class_bindings (tree, unsigned extra = 0); |
313 extern void insert_late_enum_def_bindings (tree, tree); | 314 extern void insert_late_enum_def_bindings (tree, tree); |
314 extern tree innermost_non_namespace_value (tree); | 315 extern tree innermost_non_namespace_value (tree); |
315 extern cxx_binding *outer_binding (tree, cxx_binding *, bool); | 316 extern cxx_binding *outer_binding (tree, cxx_binding *, bool); |
316 extern void cp_emit_debug_info_for_using (tree, tree); | 317 extern void cp_emit_debug_info_for_using (tree, tree); |
317 | 318 |
318 extern void finish_namespace_using_decl (tree, tree, tree); | 319 extern void finish_nonmember_using_decl (tree scope, tree name); |
319 extern void finish_local_using_decl (tree, tree, tree); | 320 extern void finish_using_directive (tree target, tree attribs); |
320 extern void finish_namespace_using_directive (tree, tree); | |
321 extern void finish_local_using_directive (tree, tree); | |
322 extern tree pushdecl (tree, bool is_friend = false); | 321 extern tree pushdecl (tree, bool is_friend = false); |
323 extern tree pushdecl_outermost_localscope (tree); | 322 extern tree pushdecl_outermost_localscope (tree); |
324 extern tree pushdecl_top_level (tree, bool is_friend = false); | 323 extern tree pushdecl_top_level (tree, bool is_friend = false); |
325 extern tree pushdecl_top_level_and_finish (tree, tree); | 324 extern tree pushdecl_top_level_and_finish (tree, tree); |
326 extern tree pushtag (tree, tree, tag_scope); | 325 extern tree pushtag (tree, tree, tag_scope); |
328 extern void pop_namespace (void); | 327 extern void pop_namespace (void); |
329 extern void push_nested_namespace (tree); | 328 extern void push_nested_namespace (tree); |
330 extern void pop_nested_namespace (tree); | 329 extern void pop_nested_namespace (tree); |
331 extern void push_to_top_level (void); | 330 extern void push_to_top_level (void); |
332 extern void pop_from_top_level (void); | 331 extern void pop_from_top_level (void); |
332 extern void maybe_save_operator_binding (tree); | |
333 extern void push_operator_bindings (void); | |
334 extern void discard_operator_bindings (tree); | |
333 | 335 |
334 #endif /* GCC_CP_NAME_LOOKUP_H */ | 336 #endif /* GCC_CP_NAME_LOOKUP_H */ |