aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/c-common.h')
-rw-r--r--gcc/c-common.h131
1 files changed, 131 insertions, 0 deletions
diff --git a/gcc/c-common.h b/gcc/c-common.h
index d874f8bc711..bdfb6b9d45e 100644
--- a/gcc/c-common.h
+++ b/gcc/c-common.h
@@ -61,6 +61,9 @@ enum rid
/* C extensions */
RID_COMPLEX, RID_THREAD,
+ /* APPLE LOCAL private extern */
+ RID_PRIVATE_EXTERN,
+
/* C++ */
RID_FRIEND, RID_VIRTUAL, RID_EXPLICIT, RID_EXPORT, RID_MUTABLE,
@@ -144,6 +147,8 @@ enum c_tree_index
CTI_WIDEST_UINT_LIT_TYPE,
CTI_CHAR_ARRAY_TYPE,
+ /* APPLE LOCAL Pascal strings 2001-07-05 zll */
+ CTI_PASCAL_STRING_TYPE, /* for Pascal strings */
CTI_WCHAR_ARRAY_TYPE,
CTI_INT_ARRAY_TYPE,
CTI_STRING_TYPE,
@@ -198,6 +203,8 @@ struct c_common_identifier GTY(())
#define truthvalue_false_node c_global_trees[CTI_TRUTHVALUE_FALSE]
#define char_array_type_node c_global_trees[CTI_CHAR_ARRAY_TYPE]
+/* APPLE LOCAL pascal strings */
+#define pascal_string_type_node c_global_trees[CTI_PASCAL_STRING_TYPE]
#define wchar_array_type_node c_global_trees[CTI_WCHAR_ARRAY_TYPE]
#define int_array_type_node c_global_trees[CTI_INT_ARRAY_TYPE]
#define string_type_node c_global_trees[CTI_STRING_TYPE]
@@ -374,6 +381,13 @@ extern int flag_replace_objc_classes;
/* Nonzero means don't output line number information. */
+/* APPLE LOCAL begin Symbol Separation */
+/* The directory name where separate debug repository and context
+ available. NULL if Symbol Separation is not used. */
+extern const char *dbg_dir;
+
+/* APPLE LOCAL end Symbol Separation */
+
extern char flag_no_line_commands;
/* Nonzero causes -E output not to be done, but directives such as
@@ -475,6 +489,12 @@ extern int warn_sign_compare;
extern int warn_long_long;
+/* APPLE LOCAL begin -Wlong-double */
+/* Nonzero means warn about usage of long double. */
+
+extern int warn_long_double;
+/* APPLE LOCAL end -Wlong-double */
+
/* Nonzero means warn about deprecated conversion from string constant to
`char *'. */
@@ -527,6 +547,13 @@ extern int warn_format_nonliteral;
extern int warn_format_security;
+/* BEGIN APPLE LOCAL disable_typechecking_for_spec_flag */
+/* This makes type conflicts a warning, instead of an error,
+ to work around some problems with SPEC. */
+
+extern int disable_typechecking_for_spec_flag;
+/* END APPLE LOCAL disable_typechecking_for_spec_flag */
+
/* C/ObjC language option variables. */
@@ -758,6 +785,68 @@ extern int flag_permissive;
extern int flag_enforce_eh_specs;
+/* The version of the C++ ABI in use. The following values are
+ allowed:
+
+ APPLE LOCAL begin 10.2 C++ abi compat mrs
+ -2: 2.95.2 Apple uses for kernel extensions.
+
+ -1: gcc 3.1 20020420. Apple uses for gcc3 compatible 10.2.
+
+ APPLE LOCAL end 10.2 C++ abi compat mrs
+ 0: The version of the ABI believed most conformant with the
+ C++ ABI specification. This ABI may change as bugs are
+ discovered and fixed. Therefore, 0 will not necessarily
+ indicate the same ABI in different versions of G++.
+
+ 1: The version of the ABI first used in G++ 3.2.
+
+ Additional positive integers will be assigned as new versions of
+ the ABI become the default version of the ABI. */
+
+extern int flag_abi_version;
+
+/* APPLE LOCAL begin -findirect-virtual-calls 2001-10-30 sts */
+/* Nonzero if all calls to virtual functions should cause indirection
+ through a vtable. */
+
+extern int flag_indirect_virtual_calls;
+/* APPLE LOCAL end -findirect-virtual-calls 2001-10-30 sts */
+
+/* APPLE LOCAL begin -fterminated-vtables */
+/* Nonzero to terminate vtables with a unique value, currently zero.
+ Used by the darwin kernel to find ends of vtables for patching
+ when loading drivers dynamically. */
+
+extern int flag_terminated_vtables;
+/* APPLE LOCAL end -fterminated-vtables */
+
+/* APPLE LOCAL begin 2.95-compatibility stuff turly */
+/* Nonzero if we're compiling in a gcc2.95-compatibility mode.
+ Implies -fterminated-vtables and -findirect-virtual-calls,
+ only-deleting-destructor support, 2.95 ptmfs, vptr initialisation,
+ constructors-returning-this... */
+
+extern int flag_apple_kext;
+/* APPLE LOCAL end 2.95-compatibility stuff turly */
+
+/* APPLE LOCAL begin structor thunks */
+/* Nonzero if we prefer to clone con/de/structors.
+ Alternative is to gen multiple tiny thunk-esque things that
+ call/jump to a unified con/de/structor. This is a classic
+ size/speed tradeoff. */
+extern int flag_clone_structors;
+/* APPLE LOCAL begin structor thunks */
+
+/* APPLE LOCAL begin private extern Radar 2872481 ilr */
+/* Nonzero if -fpreprocessed specified. This is needed by init_reswords()
+ so that it can make __private_extern__ have the same rid code as extern
+ when -fpreprocessed is specified. Normally there is a -D on the command
+ line for this. But if -fpreprocessed was specified then macros aren't
+ expanded. So we fake the token value out using the rid code. */
+extern int flag_preprocessed;
+/* APPLE LOCAL end private extern Radar 2872481 ilr */
+
/* Nonzero means warn about things that will change when compiling
with an ABI-compliant compiler. */
@@ -948,6 +1037,10 @@ extern int self_promoting_args_p (tree);
extern tree strip_array_types (tree);
extern tree strip_pointer_operator (tree);
+/* APPLE LOCAL begin fix radar 3645899, IMA problem */
+extern bool builtin_function_disabled_p (const char *);
+/* APPLE LOCAL end fix radar 3645899, IMA problem */
+
/* This function resets the parsers' state in preparation for parsing
a new file. */
extern void c_reset_state (void);
@@ -1199,6 +1292,8 @@ extern tree finish_label_address_expr (tree);
different implementations. Used in c-common.c. */
extern tree lookup_label (tree);
+extern int vector_types_compatible_p (tree t1, tree t2);
+
extern rtx c_expand_expr (tree, rtx, enum machine_mode, int, rtx *);
extern int c_safe_from_p (rtx, tree);
@@ -1229,6 +1324,36 @@ extern void dump_time_statistics (void);
extern bool c_dump_tree (void *, tree);
+/* APPLE LOCAL begin Objective-C++ */
+/* The following have been moved here from c-tree.h, since they're needed
+ in the ObjC++ world, too. */
+extern tree lookup_interface (tree);
+extern tree is_class_name (tree);
+extern tree is_id (tree);
+extern void objc_check_decl (tree);
+extern int objc_comptypes (tree, tree, int);
+extern tree objc_message_selector (void);
+extern int recognize_objc_keyword (void);
+extern tree lookup_objc_ivar (tree);
+/* APPLE LOCAL end Objective-C++ */
+
+/* APPLE LOCAL -Wlong-double */
+extern void warn_about_long_double (void);
+
+/* APPLE LOCAL begin Symbol Separation */
+extern void dbg_ss_init (void);
+extern void c_common_write_context (void);
+extern void cb_clear_write_symbols (const char *, unsigned long);
+extern void cb_restore_write_symbols (void);
+extern void cb_start_symbol_repository (unsigned int,
+ const char *,
+ unsigned long);
+extern void cb_end_symbol_repository (unsigned int);
+extern int c_valid_cinfo (cpp_reader *,
+ const char *);
+extern int cb_is_builtin_identifier (cpp_hashnode *);
+/* APPLE LOCAL end Symbol Separation */
+
extern int c_gimplify_expr (tree *, tree *, tree *);
extern tree c_walk_subtrees (tree*, int*, walk_tree_fn, void*, void*);
extern int c_tree_chain_matters_p (tree);
@@ -1265,6 +1390,12 @@ extern tree lookup_objc_ivar (tree);
extern void *get_current_scope (void);
extern void objc_mark_locals_volatile (void *);
+/* APPLE LOCAL begin AltiVec */
+/* The following function will convert expressions into
+ vector initializers. */
+extern tree vector_constructor_from_expr (tree, tree);
+/* APPLE LOCAL end AltiVec */
+
/* In c-ppoutput.c */
extern void init_pp_output (FILE *);
extern void preprocess_file (cpp_reader *);