/* Prototypes. Copyright (C) 2001 Free Software Foundation, Inc. This file is part of GNU CC. GNU CC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU CC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ extern int name_needs_quotes PARAMS ((const char *)); extern void machopic_validate_stub_or_non_lazy_ptr PARAMS ((const char *, int)); /* APPLE LOCAL begin fix prototypes */ extern const char *machopic_function_base_name PARAMS ((void)); extern const char *machopic_non_lazy_ptr_name PARAMS ((const char*)); extern const char *machopic_stub_name PARAMS ((const char*)); extern int machopic_var_referred_to_p PARAMS ((const char*)); /* APPLE LOCAL end fix prototypes */ extern void machopic_add_gc_roots PARAMS ((void)); extern void machopic_picsymbol_stub_section PARAMS ((void)); extern void machopic_symbol_stub_section PARAMS ((void)); extern void machopic_lazy_symbol_ptr_section PARAMS ((void)); extern void machopic_nl_symbol_ptr_section PARAMS ((void)); extern void constructor_section PARAMS ((void)); extern void destructor_section PARAMS ((void)); extern void mod_init_section PARAMS ((void)); extern void mod_term_section PARAMS ((void)); #ifdef RTX_CODE extern int machopic_operand_p PARAMS ((rtx)); extern enum machopic_addr_class machopic_classify_name PARAMS ((const char*)); extern rtx machopic_indirect_call_target PARAMS ((rtx)); extern rtx machopic_legitimize_pic_address PARAMS ((rtx, enum machine_mode, rtx)); extern void machopic_asm_out_constructor PARAMS ((rtx, int)); extern void machopic_asm_out_destructor PARAMS ((rtx, int)); extern rtx machopic_indirect_data_reference PARAMS ((rtx, rtx)); #endif /* RTX_CODE */ #ifdef TREE_CODE extern enum machopic_addr_class machopic_classify_ident PARAMS ((tree)); extern void machopic_define_ident PARAMS ((tree)); extern void machopic_define_name PARAMS ((const char*)); extern int machopic_name_defined_p PARAMS ((const char*)); extern int machopic_ident_defined_p PARAMS ((tree)); extern void darwin_encode_section_info PARAMS ((tree)); #endif /* TREE_CODE */ extern void machopic_finish PARAMS ((FILE *)); /* APPLE LOCAL C++ EH */ extern void darwin_asm_output_dwarf_delta PARAMS ((FILE *file, int size, const char *lab1, const char *lab2, int force_reloc)); extern void darwin_exception_section PARAMS ((void)); extern void darwin_eh_frame_section PARAMS ((void)); #ifdef GCC_C_PRAGMA_H extern void darwin_pragma_ignore PARAMS ((cpp_reader *)); extern void darwin_pragma_options PARAMS ((cpp_reader *)); /* APPLE LOCAL begin Macintosh alignment 2002-1-22 ff */ extern void darwin_pragma_pack PARAMS ((cpp_reader *)); /* APPLE LOCAL end Macintosh alignment 2002-1-22 ff */ extern void darwin_pragma_unused PARAMS ((cpp_reader *)); /* APPLE LOCAL begin CALL_ON_LOAD/CALL_ON_UNLOAD pragmas 20020202 turly */ extern void darwin_pragma_call_on_load PARAMS ((cpp_reader *)); extern void darwin_pragma_call_on_unload PARAMS ((cpp_reader *)); /* APPLE LOCAL end CALL_ON_LOAD/CALL_ON_UNLOAD pragmas 20020202 turly */ /* APPLE LOCAL begin CALL_ON_MODULE_BIND deprecated 2002-4-10 ff */ extern void darwin_pragma_call_on_module_bind PARAMS ((cpp_reader *)); /* APPLE LOCAL end CALL_ON_MODULE_BIND deprecated 2002-4-10 ff */ /* APPLE LOCAL begin temporary pragmas 2001-07-05 sts */ extern void darwin_pragma_cc_no_mach_text_sections PARAMS ((cpp_reader *)); extern void darwin_pragma_cc_opt_off PARAMS ((cpp_reader *)); extern void darwin_pragma_cc_opt_on PARAMS ((cpp_reader *)); extern void darwin_pragma_cc_opt_restore PARAMS ((cpp_reader *)); extern void darwin_pragma_cc_writable_strings PARAMS ((cpp_reader *)); extern void darwin_pragma_cc_non_writable_strings PARAMS ((cpp_reader *)); /* APPLE LOCAL end temporary pragmas 2001-07-05 sts */ #endif /* APPLE LOCAL named sections */ extern void darwin_asm_named_section PARAMS ((const char *, unsigned int)); extern unsigned int darwin_section_type_flags PARAMS ((tree, const char *, int)); extern int darwin_set_section_for_var_p PARAMS ((tree, int, int)); /* APPLE LOCAL double destructor */ extern tree darwin_handle_odd_attribute (tree *, tree, tree, int, bool *); /* APPLE LOCAL PFE */ #ifdef PFE /* This is called to allocate or freeze/thaw target-specific additions to the pfe header. The argument is a pointer to a target-defined field in the pfe header. When the value in the field is NULL then, by definition, this is for creating the dump file. The function should allocate space for any data (using pfe_malloc or pfe_calloc), do any appropriate initialization to this space, and save the pointer in *pp. If the argument is not NULL the function is expected to freeze/thaw (depending on pfe_operation) the data pointed to by the argument as well as *pp itself (*pp is never NULL in this case). Of course during thawing *pp will be the pointer set when the function was originally called with a NULL argument. */ extern void darwin_pfe_freeze_thaw_target_additions PARAMS ((void *pp)); /* This is called by pfe_savestring() to determine whether strings should be treated specially and not placed in PFE memory by pfe_savestring(). For darwin there are actually some strings in this category. See comments for darwin_pfe_maybe_savestring() for details. */ extern int darwin_pfe_maybe_savestring PARAMS ((char *)); /* Called to check for consistent target-specific switches in pfe files. */ extern void darwin_pfe_check_target_settings PARAMS ((void)); #endif