summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/cp/cp-tree.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/cp/cp-tree.h')
-rw-r--r--contrib/gcc/cp/cp-tree.h44
1 files changed, 43 insertions, 1 deletions
diff --git a/contrib/gcc/cp/cp-tree.h b/contrib/gcc/cp/cp-tree.h
index 6593832..1dafeb9 100644
--- a/contrib/gcc/cp/cp-tree.h
+++ b/contrib/gcc/cp/cp-tree.h
@@ -1052,6 +1052,13 @@ struct lang_type_class GTY(())
unsigned has_complex_assign_ref : 1;
unsigned non_aggregate : 1;
+ /* APPLE LOCAL begin omit calls to empty destructors 5559195 */
+ unsigned has_nontrivial_destructor_body : 1;
+ unsigned destructor_nontrivial_because_of_base : 1;
+ unsigned destructor_triviality_final : 1;
+ /* APPLE LOCAL end omit calls to empty destructors 5559195 */
+
+
/* When adding a flag here, consider whether or not it ought to
apply to a template instance if it applies to the template. If
so, make sure to copy it in instantiate_class_template! */
@@ -1059,7 +1066,9 @@ struct lang_type_class GTY(())
/* There are some bits left to fill out a 32-bit word. Keep track
of this by updating the size of this bitfield whenever you add or
remove a flag. */
- unsigned dummy : 12;
+ /* APPLE LOCAL begin omit calls to empty destructors 5559195 */
+ unsigned dummy : 10;
+ /* APPLE LOCAL end omit calls to empty destructors 5559195 */
tree primary_base;
VEC(tree_pair_s,gc) *vcall_indices;
@@ -2439,6 +2448,8 @@ extern void decl_shadowed_for_var_insert (tree, tree);
|| TREE_CODE (TYPE) == ENUMERAL_TYPE \
|| ARITHMETIC_TYPE_P (TYPE) \
|| TYPE_PTR_P (TYPE) \
+ /* APPLE LOCAL blocks 6040305 */ \
+ || TREE_CODE (TYPE) == BLOCK_POINTER_TYPE \
|| TYPE_PTRMEMFUNC_P (TYPE))
/* [dcl.init.aggr]
@@ -2520,6 +2531,20 @@ extern void decl_shadowed_for_var_insert (tree, tree);
#define TYPE_HAS_NONTRIVIAL_DESTRUCTOR(NODE) \
(TYPE_LANG_FLAG_4 (NODE))
+/* APPLE LOCAL begin omit calls to empty destructors 5559195 */
+/* One if the body of the destructor of class type NODE has been shown to do
+ nothing, else zero. */
+#define CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY(NODE) (LANG_TYPE_CLASS_CHECK (NODE)->has_nontrivial_destructor_body)
+
+/* One if destructor of this type must be called by its base classes because
+ one of its base classes' destructors must be called. */
+#define CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE(NODE) (LANG_TYPE_CLASS_CHECK (NODE)->destructor_nontrivial_because_of_base)
+
+/* One if the values of CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE
+ and CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY are final. */
+#define CLASSTYPE_DESTRUCTOR_TRIVIALITY_FINAL(NODE) (LANG_TYPE_CLASS_CHECK (NODE)->destructor_triviality_final)
+/* APPLE LOCAL end omit calls to empty destructors 5559195 */
+
/* Nonzero for class type means that copy initialization of this type can use
a bitwise copy. */
#define TYPE_HAS_TRIVIAL_INIT_REF(NODE) \
@@ -3704,6 +3729,8 @@ typedef enum cp_declarator_kind {
cdk_pointer,
cdk_reference,
cdk_ptrmem,
+ /* APPLE LOCAL blocks 6040305 (ch) */
+ cdk_block_pointer,
cdk_error
} cp_declarator_kind;
@@ -3772,6 +3799,13 @@ struct cp_declarator {
/* For cdk_ptrmem, the class type containing the member. */
tree class_type;
} pointer;
+ /* APPLE LOCAL begin blocks 6040305 (ch) */
+ /* For cdk_block_pointer. */
+ struct {
+ /* The cv-qualifiers for the pointer. */
+ cp_cv_quals qualifiers;
+ } block_pointer;
+ /* APPLE LOCAL end blocks 6040305 (ch) */
} u;
};
@@ -3922,6 +3956,8 @@ extern tree push_throw_library_fn (tree, tree);
extern tree check_tag_decl (cp_decl_specifier_seq *);
extern tree shadow_tag (cp_decl_specifier_seq *);
extern tree groktypename (cp_decl_specifier_seq *, const cp_declarator *);
+/* APPLE LOCAL 6339747 */
+extern tree grokblockdecl (cp_decl_specifier_seq *, const cp_declarator *);
extern tree start_decl (const cp_declarator *, cp_decl_specifier_seq *, int, tree, tree, tree *);
extern void start_decl_1 (tree, bool);
extern void cp_finish_decl (tree, tree, bool, tree, int);
@@ -4600,5 +4636,11 @@ extern void cp_genericize (tree);
extern void cp_cpp_error (cpp_reader *, int,
const char *, va_list *)
ATTRIBUTE_GCC_CXXDIAG(3,0);
+/* APPLE LOCAL radar 5741070 */
+extern tree c_return_interface_record_type (tree);
+/* APPLE LOCAL begin blocks 6040305 (cg) */
+extern cp_declarator* make_block_pointer_declarator (tree, cp_cv_quals,
+ cp_declarator *);
+/* APPLE LOCAL end blocks 6040305 (cg) */
#endif /* ! GCC_CP_TREE_H */
OpenPOWER on IntegriCloud