diff options
author | Mike Stump <mrs@apple.com> | 2004-09-15 23:48:52 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2004-09-15 23:48:52 +0000 |
commit | 71800e0bf92cdec1775e6872cc1502b8cc571b2f (patch) | |
tree | 2927279818ab0a93045c4f4b596377f5ad5dec2a /gcc/c-common.h | |
parent | 25731bed9ca76d6ed56a975acced50df90df4bb7 (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.h | 72 |
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 *); |