diff options
Diffstat (limited to 'gcc/cp/cp-tree.h')
-rw-r--r-- | gcc/cp/cp-tree.h | 66 |
1 files changed, 59 insertions, 7 deletions
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index bd5d0eca14d..e1a13f9a227 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -194,6 +194,9 @@ struct lang_identifier GTY(()) cxx_binding *namespace_bindings; cxx_binding *bindings; tree class_template_info; + /* APPLE LOCAL begin objc speedup --dpatel */ + tree interface_value; /* ObjC interface, if any */ + /* APPLE LOCAL end objc speedup --dpatel */ tree label_value; }; @@ -522,6 +525,12 @@ enum cp_tree_index CPTI_KEYED_CLASSES, + /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */ + CPTI_DELTA2_IDENTIFIER, + CPTI_INDEX_IDENTIFIER, + CPTI_PFN_OR_DELTA2_IDENTIFIER, + /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */ + CPTI_MAX }; @@ -592,6 +601,12 @@ extern GTY(()) tree cp_global_trees[CPTI_MAX]; #define deleting_dtor_identifier cp_global_trees[CPTI_DELETING_DTOR_IDENTIFIER] #define delta_identifier cp_global_trees[CPTI_DELTA_IDENTIFIER] #define in_charge_identifier cp_global_trees[CPTI_IN_CHARGE_IDENTIFIER] + /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */ +#define delta2_identifier cp_global_trees[CPTI_DELTA2_IDENTIFIER] +#define index_identifier cp_global_trees[CPTI_INDEX_IDENTIFIER] +#define pfn_or_delta2_identifier cp_global_trees[CPTI_PFN_OR_DELTA2_IDENTIFIER] + /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */ + /* The name of the parameter that contains a pointer to the VTT to use for this subobject constructor or destructor. */ #define vtt_parm_identifier cp_global_trees[CPTI_VTT_PARM_IDENTIFIER] @@ -1683,7 +1698,7 @@ struct lang_decl GTY(()) /* Nonzero if NODE (a FUNCTION_DECL) is a destructor, but not the specialized in-charge constructor, in-charge deleting constructor, - or the the base destructor. */ + or the base destructor. */ #define DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P(NODE) \ (DECL_DESTRUCTOR_P (NODE) && !DECL_CLONED_FUNCTION_P (NODE)) @@ -2521,8 +2536,13 @@ struct lang_decl GTY(()) /* Get the POINTER_TYPE to the METHOD_TYPE associated with this pointer to member function. TYPE_PTRMEMFUNC_P _must_ be true, before using this macro. */ -#define TYPE_PTRMEMFUNC_FN_TYPE(NODE) \ - (TREE_TYPE (TYPE_FIELDS (NODE))) +/* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */ +#define TYPE_PTRMEMFUNC_FN_TYPE(NODE) \ + *((flag_apple_kext) ? \ + &(TREE_TYPE (TYPE_FIELDS (TREE_TYPE (TREE_CHAIN ( \ + TREE_CHAIN (TYPE_FIELDS (NODE))))))) : \ + &(TREE_TYPE (TYPE_FIELDS (NODE)))) \ +/* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */ /* Returns `A' for a type like `int (A::*)(double)' */ #define TYPE_PTRMEMFUNC_OBJECT_TYPE(NODE) \ @@ -2836,7 +2856,7 @@ struct lang_decl GTY(()) /* Nonzero if this VAR_DECL or FUNCTION_DECL has already been instantiated, i.e. its definition has been generated from the - pattern given in the the template. */ + pattern given in the template. */ #define DECL_TEMPLATE_INSTANTIATED(NODE) \ DECL_LANG_FLAG_1 (VAR_OR_FUNCTION_DECL_CHECK (NODE)) @@ -2913,7 +2933,8 @@ struct lang_decl GTY(()) #define THUNK_ALIAS(DECL) \ (DECL_LANG_SPECIFIC (FUNCTION_DECL_CHECK (DECL))->decl_flags.u.template_info) -/* For thunk NODE, this is the FUNCTION_DECL thunked to. */ +/* For thunk NODE, this is the FUNCTION_DECL thunked to. It is + possible for the target to be a thunk too. */ #define THUNK_TARGET(NODE) \ (DECL_LANG_SPECIFIC (NODE)->u.f.befriending_classes) @@ -3517,6 +3538,8 @@ typedef enum cp_decl_spec { ds_typedef, ds_complex, ds_thread, + /* APPLE LOCAL CW asm blocks. */ + ds_cw_asm, ds_last } cp_decl_spec; @@ -3723,6 +3746,8 @@ extern void note_name_declared_in_class (tree, tree); extern tree get_vtbl_decl_for_binfo (tree); extern tree get_vtt_name (tree); extern tree get_primary_binfo (tree); +/* APPLE LOCAL KEXT indirect-virtual-calls --sts */ +extern tree build_vfn_ref_using_vtable (tree, tree); extern void debug_class (tree); extern void debug_thunks (tree); extern tree cp_fold_obj_type_ref (tree, tree); @@ -3785,7 +3810,7 @@ extern tree start_decl (const cp_declarator *, cp_decl_specifier_seq *, int, extern void start_decl_1 (tree); extern void cp_finish_decl (tree, tree, tree, int); extern void finish_decl (tree, tree, tree); -extern int complete_array_type (tree, tree, int); +extern int cp_complete_array_type (tree *, tree, bool); extern tree build_ptrmemfunc_type (tree); extern tree build_ptrmem_type (tree, tree); /* the grokdeclarator prototype is in decl.h */ @@ -4104,6 +4129,8 @@ extern void pop_to_parent_deferring_access_checks (void); extern void perform_deferred_access_checks (void); extern void perform_or_defer_access_check (tree, tree); extern void init_cp_semantics (void); +/* APPLE LOCAL Objective-C++ */ +extern tree do_poplevel (tree); extern void add_decl_expr (tree); extern tree finish_expr_stmt (tree); extern tree begin_if_stmt (void); @@ -4310,6 +4337,7 @@ extern tree build_ptrmemfunc (tree, tree, int, bool); extern int cp_type_quals (tree); extern bool cp_has_mutable_p (tree); extern bool at_least_as_qualified_p (tree, tree); +extern void cp_apply_type_quals_to_decl (int, tree); extern tree build_ptrmemfunc1 (tree, tree, tree); extern void expand_ptrmemfunc_cst (tree, tree *, tree *); extern tree pfn_from_ptrmemfunc (tree); @@ -4370,10 +4398,34 @@ extern tree mangle_ref_init_variable (tree); /* in dump.c */ extern bool cp_dump_tree (void *, tree); -/* in cp-simplify.c */ +/* APPLE LOCAL begin Objective-C */ +/* In cp/cp-objcp-common.c. */ + +extern HOST_WIDE_INT cxx_get_alias_set (tree); +extern bool cxx_warn_unused_global_decl (tree); +extern tree cp_expr_size (tree); +extern size_t cp_tree_size (enum tree_code); +extern bool cp_var_mod_type_p (tree, tree); +extern void cxx_initialize_diagnostics (struct diagnostic_context *); +extern int cxx_types_compatible_p (tree, tree); +/* APPLE LOCAL end Objective-C */ + +/* APPLE LOCAL begin KEXT double destructor */ +extern int has_apple_kext_compatibility_attr_p PARAMS ((tree)); +extern int has_empty_operator_delete_p PARAMS ((tree)); +/* APPLE LOCAL end KEXT double destructor */ + +/* APPLE LOCAL kext identify vtables */ +extern int cp_vtable_p (tree); + +/* in cp-gimplify.c */ extern int cp_gimplify_expr (tree *, tree *, tree *); extern void cp_genericize (tree); +/* APPLE LOCAL begin CW asm blocks */ +extern tree cw_asm_cp_build_component_ref (tree, tree); +/* APPLE LOCAL end CW asm blocks */ + /* -- end of C++ */ /* In order for the format checking to accept the C++ frontend |