diff options
Diffstat (limited to 'gcc/c-common.h')
-rw-r--r-- | gcc/c-common.h | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/gcc/c-common.h b/gcc/c-common.h index d874f8bc711..bdb4f15ea15 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. */ @@ -1199,6 +1288,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 +1320,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 +1386,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 *); |