aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.h
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2004-09-15 23:48:52 +0000
committerMike Stump <mrs@apple.com>2004-09-15 23:48:52 +0000
commit71800e0bf92cdec1775e6872cc1502b8cc571b2f (patch)
tree2927279818ab0a93045c4f4b596377f5ad5dec2a /gcc/c-common.h
parent25731bed9ca76d6ed56a975acced50df90df4bb7 (diff)
Merge in changes from mainline, from apple-ppc-merge-20040821
to apple-ppc-merge-20040907. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-ppc-branch@87576 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-common.h')
-rw-r--r--gcc/c-common.h72
1 files changed, 59 insertions, 13 deletions
diff --git a/gcc/c-common.h b/gcc/c-common.h
index ff4bb31a327..9505d432ca7 100644
--- a/gcc/c-common.h
+++ b/gcc/c-common.h
@@ -628,6 +628,11 @@ extern int flag_clone_structors;
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. */
+
+extern int flag_threadsafe_statics;
+
/* Nonzero means warn about implicit declarations. */
extern int warn_implicit;
@@ -702,9 +707,6 @@ extern tree c_alignof_expr (tree);
/* Print an error message for invalid operands to arith operation CODE.
NOP_EXPR is used as a special case (see truthvalue_conversion). */
extern void binary_op_error (enum tree_code);
-#define my_friendly_assert(EXP, N) (void) \
- (((EXP) == 0) ? (fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0) : 0)
-
extern tree fix_string_type (tree);
struct varray_head_tag;
extern void constant_expression_warning (tree);
@@ -901,7 +903,7 @@ extern int vector_types_convertible_p (tree t1, tree t2);
extern rtx c_expand_expr (tree, rtx, enum machine_mode, int, rtx *);
-extern bool c_staticp (tree);
+extern tree c_staticp (tree);
extern int c_common_unsafe_for_reeval (tree);
@@ -943,6 +945,8 @@ extern tree lookup_objc_ivar (tree);
extern void c_warn_unused_result (tree *);
extern void verify_sequence_points (tree);
+extern tree fold_offsetof (tree);
+
/* In c-gimplify.c */
extern void c_genericize (tree);
extern int c_gimplify_expr (tree *, tree *, tree *);
@@ -962,26 +966,68 @@ extern void c_stddef_cpp_builtins (void);
extern void fe_file_change (const struct line_map *);
extern void c_parse_error (const char *, enum cpp_ttype, tree);
-/* The following have been moved here from c-tree.h, since they're needed
- in the ObjC++ world, too. What is more, stub-objc.c could use a few
- prototypes. */
-extern tree lookup_interface (tree);
-extern tree is_class_name (tree);
+/* Objective-C / Objective-C++ entry points. */
+
+/* The following ObjC/ObjC++ functions are called by the C and/or C++
+ front-ends; they all must have corresponding stubs in stub-objc.c. */
+extern tree objc_is_class_name (tree);
extern tree objc_is_object_ptr (tree);
extern void objc_check_decl (tree);
+extern int objc_is_reserved_word (tree);
extern int objc_comptypes (tree, tree, int);
extern tree objc_message_selector (void);
-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 */
+extern tree objc_lookup_ivar (tree);
extern void objc_clear_super_receiver (void);
extern int objc_is_public (tree, tree);
+extern tree objc_is_id (tree);
+extern void objc_declare_alias (tree, tree);
+extern void objc_declare_class (tree);
+extern void objc_declare_protocols (tree);
+extern tree objc_build_message_expr (tree);
+extern tree objc_finish_message_expr (tree, tree, tree);
+extern tree objc_build_selector_expr (tree);
+extern tree objc_build_protocol_expr (tree);
+extern tree objc_build_encode_expr (tree);
+extern tree objc_build_string_object (tree);
+extern tree objc_get_protocol_qualified_type (tree, tree);
+extern tree objc_get_class_reference (tree);
+extern tree objc_get_class_ivars (tree);
+extern void objc_start_class_interface (tree, tree, tree);
+extern void objc_start_category_interface (tree, tree, tree);
+extern void objc_start_protocol (tree, tree);
+extern void objc_continue_interface (void);
+extern void objc_finish_interface (void);
+extern void objc_start_class_implementation (tree, tree);
+extern void objc_start_category_implementation (tree, tree);
+extern void objc_continue_implementation (void);
+extern void objc_finish_implementation (void);
+extern void objc_set_visibility (int);
+extern void objc_set_method_type (enum tree_code);
+extern tree objc_build_method_signature (tree, tree, tree);
+extern void objc_add_method_declaration (tree);
+extern void objc_start_method_definition (tree);
+extern void objc_finish_method_definition (tree);
+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);
+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);
+extern int objc_static_init_needed_p (void);
+extern tree objc_generate_static_init_call (tree);
+
+/* The following are provided by the C and C++ front-ends, and called by
+ ObjC/ObjC++. */
+extern void *objc_get_current_scope (void);
+extern void objc_mark_locals_volatile (void *);
/* In c-ppoutput.c */
extern void init_pp_output (FILE *);