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.h107
1 files changed, 104 insertions, 3 deletions
diff --git a/gcc/c-common.h b/gcc/c-common.h
index 13377f167fa..b991732bc14 100644
--- a/gcc/c-common.h
+++ b/gcc/c-common.h
@@ -26,6 +26,26 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "cpplib.h"
#include "ggc.h"
+/* APPLE LOCAL begin CW asm blocks */
+/* We use a small state machine to inform the lexer when to start
+ returning tokens marking the beginning of each asm line. */
+enum cw_asm_states {
+ /* Normal code. */
+ cw_asm_none,
+ /* '{' of asm block seen, decls may appear. */
+ cw_asm_decls,
+ /* No more decls, in asm block proper, '}' not seen yet. */
+ cw_asm_asm
+};
+
+extern enum cw_asm_states cw_asm_state;
+extern int cw_asm_in_decl;
+extern int cw_asm_block;
+extern int cw_asm_at_bol;
+extern int cw_asm_in_operands;
+extern int cw_asm_labelno;
+/* APPLE LOCAL end CW asm blocks */
+
/* Usage of TREE_LANG_FLAG_?:
0: TREE_NEGATED_INT (in INTEGER_CST).
IDENTIFIER_MARKED (used by search routines).
@@ -56,6 +76,8 @@ 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,
@@ -140,6 +162,8 @@ enum c_tree_index
CTI_WIDEST_UINT_LIT_TYPE,
CTI_CHAR_ARRAY_TYPE,
+ /* APPLE LOCAL pascal strings */
+ CTI_PASCAL_STRING_TYPE, /* for Pascal strings */
CTI_WCHAR_ARRAY_TYPE,
CTI_INT_ARRAY_TYPE,
CTI_STRING_TYPE,
@@ -189,6 +213,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]
@@ -386,6 +412,13 @@ extern int flag_short_double;
extern int flag_short_wchar;
+/* APPLE LOCAL begin lvalue cast */
+/* Nonzero means allow assignment, increment or decrement of casts of
+ lvalues (e.g., '((foo *)p)++') if both the lvalue and its cast are
+ of POD type with identical size and alignment. */
+extern int flag_lvalue_cast_assign;
+/* APPLE LOCAL end lvalue cast */
+
/* Nonzero means allow Microsoft extensions without warnings or errors. */
extern int flag_ms_extensions;
@@ -393,6 +426,12 @@ extern int flag_ms_extensions;
extern int flag_no_asm;
+/* APPLE LOCAL begin CW asm blocks */
+/* Nonzero means that CodeWarrior-style inline assembler is to be parsed. */
+
+extern int flag_cw_asm_blocks;
+/* APPLE LOCAL end CW asm blocks */
+
/* Nonzero means give string constants the type `const char *', as mandated
by the standard. */
@@ -416,6 +455,12 @@ extern int warn_unknown_pragmas; /* Tri state variable. */
extern int warn_format;
+/* APPLE LOCAL begin 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;
+/* APPLE LOCAL end disable_typechecking_for_spec_flag */
/* C/ObjC language option variables. */
@@ -454,6 +499,13 @@ extern int flag_gen_declaration;
extern int flag_next_runtime;
+/* APPLE LOCAL begin ObjC C++ ivars */
+/* Generate special '- .cxx_construct' and '- .cxx_destruct' methods
+ to initialize any non-POD ivars in ObjC++ classes. */
+
+extern int flag_objc_call_cxx_cdtors;
+/* APPLE LOCAL end ObjC C++ ivars */
+
/* Tells the compiler that this is a special run. Do not perform any
compiling, instead we are to test some platform dependent features
and output a C header file with appropriate definitions. */
@@ -566,6 +618,26 @@ extern int flag_permissive;
extern int flag_enforce_eh_specs;
+/* APPLE LOCAL KEXT */
+extern int flag_apple_kext;
+
+/* 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 end 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 (the default) means to generate thread-safe code for
initializing local statics. */
@@ -689,6 +761,10 @@ extern int self_promoting_args_p (tree);
extern tree strip_array_types (tree);
extern tree strip_pointer_operator (tree);
+/* APPLE LOCAL begin IMA built-in decl merging fix (radar 3645899) */
+extern bool builtin_function_disabled_p (const char *);
+/* APPLE LOCAL end */
+
/* This is the basic parsing function. */
extern void c_parse_file (void);
/* This is misnamed, it actually performs end-of-compilation processing. */
@@ -885,7 +961,8 @@ enum lvalue_use {
lv_asm
};
-extern int lvalue_or_else (tree, enum lvalue_use);
+/* APPLE LOCAL non-lvalue assign */
+extern int lvalue_or_else (tree *, enum lvalue_use);
/* In c-gimplify.c */
extern void c_genericize (tree);
@@ -951,13 +1028,17 @@ extern void objc_add_instance_variable (tree);
extern tree objc_build_keyword_decl (tree, tree, tree);
extern tree objc_build_throw_stmt (tree);
extern void objc_begin_try_stmt (location_t, tree);
-extern void objc_finish_try_stmt (void);
+/* APPLE LOCAL Objective-C++ */
+extern tree objc_finish_try_stmt (void);
extern void objc_begin_catch_clause (tree);
extern void objc_finish_catch_clause (void);
extern void objc_build_finally_clause (location_t, tree);
-extern void objc_build_synchronized (location_t, tree, tree);
+/* APPLE LOCAL Objective-C++ */
+extern tree objc_build_synchronized (location_t, tree, tree);
extern int objc_static_init_needed_p (void);
extern tree objc_generate_static_init_call (tree);
+/* APPLE LOCAL ObjC GC */
+extern tree objc_generate_write_barrier (tree, enum tree_code, tree);
/* The following are provided by the C and C++ front-ends, and called by
ObjC/ObjC++. */
@@ -970,4 +1051,24 @@ extern void preprocess_file (cpp_reader *);
extern void pp_file_change (const struct line_map *);
extern void pp_dir_change (cpp_reader *, const char *);
+/* APPLE LOCAL begin CW asm blocks */
+extern tree cw_asm_stmt (tree, tree, int);
+extern tree cw_asm_build_register_offset (tree, tree);
+extern tree cw_asm_label (tree, int);
+extern tree prepend_char_identifier (tree, char);
+extern void clear_cw_asm_labels (void);
+extern tree cw_asm_reg_name (tree);
+extern tree get_cw_asm_label (tree);
+extern tree cw_asm_entry (tree, tree, tree);
+extern int cw_asm_typename_or_reserved (tree);
+extern tree cw_asm_c_build_component_ref (tree, tree);
+extern tree cw_get_identifier (tree, const char *);
+/* APPLE LOCAL end CW asm blocks */
+
+/* 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 */
+
#endif /* ! GCC_C_COMMON_H */