⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cp-tree.h

📁 早期freebsd实现
💻 H
📖 第 1 页 / 共 5 页
字号:
extern int warn_overloaded_virtual;/* in cp-decl{2}.c */extern tree void_list_node;extern tree void_zero_node;extern tree default_function_type;extern tree define_function ();extern tree build_member_type ();extern tree build_push_scope ();extern void finish_builtin_type ();extern tree vtable_entry_type;extern tree __t_desc_type_node, __i_desc_type_node, __m_desc_type_node;extern tree class_star_type_node;extern tree build_vtable_entry ();extern tree build_vfn_ref ();extern tree finish_table ();extern tree typedecl_for_tag ();extern tree identifier_class_value ();extern tree constructor_name ();extern int complete_array_type ();extern tree coerce_new_type (), coerce_delete_type ();/* A node that is a list (length 1) of error_mark_nodes.  */extern tree error_mark_list;extern tree ptr_type_node;extern tree class_type_node, record_type_node, union_type_node, enum_type_node;extern tree exception_type_node, unknown_type_node;extern tree get_temp_name (), get_temp_aggr (), get_temp_regvar ();extern tree cleanup_after_call ();extern tree build_type_conversion ();extern tree convert_force ();extern tree maybe_convert_decl_to_const ();extern char *lang_printable_name ();extern char *fndecl_as_string ();extern char *build_overload_name ();/* The largest size a virtual function table can be.   Must be a (power of 2).  */#ifndef VINDEX_MAX#define VINDEX_MAX ((unsigned)128)/* This is the integer ~ (vindex_max - 1).  */#endifextern tree vtbl_mask;/* Array type `(void *)[]' */extern tree vtbl_type_node;extern tree get_parm_types ();extern tree grokopexpr (), getaggrs (), groktypefield ();extern tree grok_method_quals (), grok_enum_decls ();extern void finish_anon_union();extern tree long_long_integer_type_node, long_long_unsigned_type_node;/* For building calls to `delete'.  */extern tree integer_two_node, integer_three_node;extern tree get_first_matching_virtual (), get_abstract_virtuals ();/* in cp-typeck.c */extern tree build_x_conditional_expr ();extern tree merge_component_comparisons ();extern tree build_x_unary_op (), build_x_binary_op ();extern tree build_component_addr ();extern tree build_x_function_call ();extern tree require_complete_type ();extern tree build_x_indirect_ref (), build_x_array_ref ();extern tree build_x_modify_expr (), build_x_modify_op_expr ();extern tree build_m_component_ref ();extern tree build_component_type_expr ();extern tree build_x_arrow ();extern tree build_component_ref_1 ();extern tree datatype (), unary_complex_lvalue (), target_type ();extern tree build_return_stmt ();extern tree convert_arguments (), commonparms ();extern tree cplus_size_in_bytes ();extern tree cplus_sizeof (), cplus_sizeof_nowarn ();extern tree error_not_base_type ();/* in cp-type2.c */extern tree binfo_or_else ();extern void my_friendly_abort ();extern void error_with_aggr_type ();/* in tree.c */extern tree build_let ();extern tree decl_type_context ();/* in cp-tree.c */extern tree build1 ();extern tree build_cplus_new ();extern tree build_cplus_array_type ();extern tree build_cplus_method_type ();extern tree build_classtype_variant ();extern tree hash_tree_cons (), hash_tree_chain (), hash_chainon ();extern tree list_hash_lookup_or_cons ();extern tree layout_basetypes ();extern tree copy_to_permanent ();extern tree get_decl_list ();extern tree break_out_cleanups ();extern tree break_out_calls ();extern tree array_type_nelts_total ();extern tree array_type_nelts_top ();/* in cp-except.c */extern tree current_exception_type;extern tree current_exception_decl;extern tree current_exception_object;extern tree build_exception_variant ();extern tree lookup_exception_type (), lookup_exception_cname ();extern tree lookup_exception_object ();extern tree cplus_expand_start_catch ();extern tree cplus_expand_end_try ();extern void finish_exception_decl ();/* in cp-class.c */extern tree current_class_name;extern tree current_class_type;extern tree current_lang_name, lang_name_cplusplus, lang_name_c;extern tree convert_pointer_to (), convert_pointer_to_vbase ();extern tree convert_to_reference (), convert_to_aggr (), convert_aggr ();extern tree build_x_new (), build_x_delete ();extern tree build_new (), build_vec_new (), build_delete (), build_vec_delete ();extern tree make_destructor_name ();extern tree build_scoped_ref (), build_vfield_ref ();extern tree build_method_call (), build_overload_call ();extern tree build_type_pathname ();extern tree start_method ();extern tree finish_method ();extern tree lookup_field (), lookup_nested_field (), lookup_fnfields ();void pushclass (), popclass (), pushclasstype ();extern tree build_operator_fnname (), build_opfncall (), build_type_conversion ();/* Points to the name of that function. May not be the DECL_NAME   of CURRENT_FUNCTION_DECL due to overloading */extern tree original_function_name;# define IS_AGGR_TYPE(t) (TYPE_LANG_FLAG_5 (t))# define IS_AGGR_TYPE_CODE(t) \  (t == RECORD_TYPE || t == UNION_TYPE)extern tree build_decl_overload (), build_typename_overload ();extern tree build_destructor_call ();extern tree resolve_scope_to_name ();extern tree build_scoped_method_call ();extern tree current_class_name, current_class_type, current_class_decl, C_C_D;extern tree current_vtable_decl;/* in cp-init.c  */extern tree resolve_offset_ref ();extern void check_base_init ();extern void do_member_init ();extern tree global_base_init_list;extern tree current_base_init_list, current_member_init_list;#ifdef SOSextern tree get_linktable_name (), get_dtable_name (), get_sos_dtable ();#endifextern tree get_member_function ();extern tree build_member_call (), build_offset_ref ();extern tree build_virtual_init ();extern int current_function_assigns_this;extern int current_function_just_assigned_this;extern int current_function_parms_stored;/* Here's where we control how name mangling takes place.  */#define OPERATOR_ASSIGN_FORMAT "__a%s"#define OPERATOR_FORMAT "__%s"#define OPERATOR_TYPENAME_FORMAT "__op"/* Cannot use '$' up front, because this confuses gdb   (names beginning with '$' are gdb-local identifiers).   Note that all forms in which the '$' is significant are long enough   for direct indexing (meaning that if we know there is a '$'   at a particular location, we can index into the string at   any other location that provides distinguishing characters).  *//* Define NO_DOLLAR_IN_LABEL in your favorite tm file if your assembler   doesn't allow '$' in symbol names.  */#ifndef NO_DOLLAR_IN_LABEL#define JOINER '$'#define VPTR_NAME "$v"#define THROW_NAME "$eh_throw"#define DESTRUCTOR_DECL_PREFIX "_$_"#define IN_CHARGE_NAME "__in$chrg"#define AUTO_VTABLE_NAME "__vtbl$me__"#define AUTO_TEMP_NAME "_$tmp_"#define AUTO_TEMP_FORMAT "_$tmp_%d"#define VTBL_PTR_TYPE "$vtbl_ptr_type"#define VTABLE_BASE "$vb"#define VTABLE_NAME_FORMAT "_vt$%s"#define VFIELD_BASE "$vf"#define VFIELD_NAME "_vptr$"#define VFIELD_NAME_FORMAT "_vptr$%s"#define VBASE_NAME "_vb$"#define VBASE_NAME_FORMAT "_vb$%s"#define STATIC_NAME_FORMAT "_%s$%s"#define FILE_FUNCTION_FORMAT "_GLOBAL_$D$%s"#define ANON_AGGRNAME_FORMAT "$_%d"#else	/* NO_DOLLAR_IN_LABEL */#define JOINER '.'#define VPTR_NAME ".v"#define THROW_NAME ".eh_throw"#define DESTRUCTOR_DECL_PREFIX "_._"#define IN_CHARGE_NAME "__in.chrg"#define AUTO_VTABLE_NAME "__vtbl.me__"#define AUTO_TEMP_NAME "_.tmp_"#define AUTO_TEMP_FORMAT "_.tmp_%d"#define VTBL_PTR_TYPE ".vtbl_ptr_type"#define VTABLE_BASE ".vb"#define VTABLE_NAME_FORMAT "_vt.%s"#define VFIELD_BASE ".vf"#define VFIELD_NAME "_vptr."#define VFIELD_NAME_FORMAT "_vptr.%s"#define VBASE_NAME "_vb."#define VBASE_NAME_FORMAT "_vb.%s"#define STATIC_NAME_FORMAT "_%s.%s"#define FILE_FUNCTION_FORMAT "_GLOBAL_.D.%s"#define ANON_AGGRNAME_FORMAT "._%d"#endif	/* NO_DOLLAR_IN_LABEL */#define THIS_NAME "this"#define DESTRUCTOR_NAME_FORMAT "~%s"#define FILE_FUNCTION_PREFIX_LEN 9#define VTABLE_DELTA_NAME "delta"#define VTABLE_DELTA2_NAME "delta2"#define VTABLE_INDEX_NAME "index"#define VTABLE_PFN_NAME "pfn"#define EXCEPTION_CLEANUP_NAME "exception cleanup"#define THIS_NAME_P(ID_NODE) (strcmp(IDENTIFIER_POINTER (ID_NODE), "this") == 0)#define VPTR_NAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[0] == JOINER \			      && IDENTIFIER_POINTER (ID_NODE)[1] == 'v')#define DESTRUCTOR_NAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[1] == JOINER)#define VTABLE_NAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[3] == JOINER \  && IDENTIFIER_POINTER (ID_NODE)[2] == 't'\  && IDENTIFIER_POINTER (ID_NODE)[1] == 'v')#define VBASE_NAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[3] == JOINER \  && IDENTIFIER_POINTER (ID_NODE)[2] == 'b'\  && IDENTIFIER_POINTER (ID_NODE)[1] == 'v')#define OPERATOR_TYPENAME_P(ID_NODE) \  (IDENTIFIER_POINTER (ID_NODE)[0] == '_'	\   && IDENTIFIER_POINTER (ID_NODE)[1] == '_'	\   && IDENTIFIER_POINTER (ID_NODE)[2] == 'o'	\   && IDENTIFIER_POINTER (ID_NODE)[3] == 'p')#define TEMP_NAME_P(ID_NODE) (!strncmp (IDENTIFIER_POINTER (ID_NODE), AUTO_TEMP_NAME, sizeof (AUTO_TEMP_NAME)-1))#define VFIELD_NAME_P(ID_NODE) (!strncmp (IDENTIFIER_POINTER (ID_NODE), VFIELD_NAME, sizeof(VFIELD_NAME)-1))/* For anonymous aggregate types, we need some sort of name to   hold on to.  In practice, this should not appear, but it should   not be harmful if it does.  */#define ANON_AGGRNAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[0] == JOINER \				  && IDENTIFIER_POINTER (ID_NODE)[1] == '_')#define ANON_PARMNAME_FORMAT "_%d"#define ANON_PARMNAME_P(ID_NODE) (IDENTIFIER_POINTER (ID_NODE)[0] == '_' \				  && IDENTIFIER_POINTER (ID_NODE)[1] <= '9')/* Define the sets of attributes that member functions and baseclasses   can have.  These are sensible combinations of {public,private,protected}   cross {virtual,non-virtual}.  */enum visibility_type {  visibility_default,  visibility_public,  visibility_private,  visibility_protected,  visibility_default_virtual,  visibility_public_virtual,  visibility_private_virtual};enum visibility_type compute_visibility ();/* in cp-lex.c  */extern tree current_unit_name, current_unit_language;extern char *operator_name_string ();/* Things for handling inline functions.  */struct pending_inline{  struct pending_inline *next;	/* pointer to next in chain */  int lineno;			/* line number we got the text from */  char *filename;		/* name of file we were processing */  tree fndecl;			/* FUNCTION_DECL that brought us here */  int token;			/* token we were scanning */  int token_value;		/* value of token we were scanning (YYSTYPE) */  char *buf;			/* pointer to character stream */  int len;			/* length of stream */  tree parm_vec, bindin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -