]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/darwin-protos.h
Fix PR target/47636
[thirdparty/gcc.git] / gcc / config / darwin-protos.h
CommitLineData
ee890fe2 1/* Prototypes.
fee3eacd 2 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2010
66647d44 3 Free Software Foundation, Inc.
ee890fe2 4
7ec022b2 5This file is part of GCC.
ee890fe2 6
7ec022b2 7GCC is free software; you can redistribute it and/or modify
ee890fe2 8it under the terms of the GNU General Public License as published by
2f83c7d6 9the Free Software Foundation; either version 3, or (at your option)
ee890fe2
SS
10any later version.
11
7ec022b2 12GCC is distributed in the hope that it will be useful,
ee890fe2
SS
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
2f83c7d6
NC
18along with GCC; see the file COPYING3. If not see
19<http://www.gnu.org/licenses/>. */
ee890fe2 20
d6b5193b 21extern void darwin_init_sections (void);
9c808aad 22extern int name_needs_quotes (const char *);
ee890fe2 23
11abc112 24extern void machopic_validate_stub_or_non_lazy_ptr (const char *);
ee890fe2 25
1622229c 26extern void machopic_output_function_base_name (FILE *);
11abc112
MM
27extern const char *machopic_indirection_name (rtx, bool);
28extern const char *machopic_mcount_stub_name (void);
ee890fe2 29
ee890fe2
SS
30#ifdef RTX_CODE
31
08a6a74b 32extern rtx machopic_gen_offset (rtx);
9c808aad 33extern int machopic_operand_p (rtx);
fee3eacd 34extern int machopic_symbol_defined_p (rtx sym_ref);
11abc112 35extern enum machopic_addr_class machopic_classify_symbol (rtx);
ee890fe2 36
9c808aad
AJ
37extern rtx machopic_indirect_data_reference (rtx, rtx);
38extern rtx machopic_indirect_call_target (rtx);
39extern rtx machopic_legitimize_pic_address (rtx, enum machine_mode, rtx);
ee890fe2 40
9c808aad
AJ
41extern void machopic_asm_out_constructor (rtx, int);
42extern void machopic_asm_out_destructor (rtx, int);
ee890fe2
SS
43#endif /* RTX_CODE */
44
45#ifdef TREE_CODE
46
11abc112 47extern void machopic_define_symbol (rtx);
9c808aad 48extern void darwin_encode_section_info (tree, rtx, int);
16d6f994 49extern void darwin_set_default_type_attributes (tree);
ee890fe2
SS
50
51#endif /* TREE_CODE */
52
9c808aad 53extern void machopic_finish (FILE *);
0168a849 54
24c78b3a 55extern int machopic_reloc_rw_mask (void);
d6b5193b
RS
56extern section *machopic_select_section (tree, int, unsigned HOST_WIDE_INT);
57extern section *machopic_select_rtx_section (enum machine_mode, rtx,
58 unsigned HOST_WIDE_INT);
3be131be 59
f16d3f39 60extern section *darwin_function_section (tree, enum node_frequency, bool, bool);
14d11d40
IS
61extern void darwin_function_switched_text_sections (FILE *, tree, bool);
62
4746cf84 63extern void darwin_unique_section (tree decl, int reloc);
c18a5b6c 64extern void darwin_asm_named_section (const char *, unsigned int, tree);
4746cf84
MA
65extern void darwin_non_lazy_pcrel (FILE *, rtx);
66
eeab4d81 67extern void darwin_emit_unwind_label (FILE *, tree, int, int);
083cad55 68extern void darwin_emit_except_table_label (FILE *);
4746cf84 69
9c808aad
AJ
70extern void darwin_pragma_ignore (struct cpp_reader *);
71extern void darwin_pragma_options (struct cpp_reader *);
72extern void darwin_pragma_unused (struct cpp_reader *);
16d6f994 73extern void darwin_pragma_ms_struct (struct cpp_reader *);
b64a1b53 74
192d0f89 75extern void darwin_file_start (void);
9c808aad 76extern void darwin_file_end (void);
a5fe455b 77
c082f9f3
SB
78extern void darwin_asm_lto_start (void);
79extern void darwin_asm_lto_end (void);
80
8e3e233b 81extern void darwin_mark_decl_preserved (const char *);
4746cf84 82
f475fd3c 83extern tree darwin_handle_kext_attribute (tree *, tree, tree, int, bool *);
005c1a13
GK
84extern tree darwin_handle_weak_import_attribute (tree *node, tree name,
85 tree args, int flags,
86 bool * no_add_attrs);
9c808aad 87extern void machopic_output_stub (FILE *, const char *, const char *);
9c808aad 88extern void darwin_globalize_label (FILE *, const char *);
6ce4806b 89extern void darwin_assemble_visibility (tree, int);
46a99b06 90
9c808aad
AJ
91extern void darwin_asm_output_dwarf_delta (FILE *, int, const char *,
92 const char *);
192d0f89
GK
93extern void darwin_asm_output_dwarf_offset (FILE *, int, const char *,
94 section *);
46a99b06
IS
95
96extern void darwin_asm_declare_object_name (FILE *, const char *, tree);
e4f7c483
AS
97extern void darwin_asm_declare_constant_name (FILE *, const char *,
98 const_tree, HOST_WIDE_INT);
46a99b06
IS
99
100extern void darwin_output_aligned_bss (FILE *, tree, const char *,
101 unsigned HOST_WIDE_INT, unsigned int);
102
103extern void darwin_asm_output_aligned_decl_local (FILE *, tree, const char *,
104 unsigned HOST_WIDE_INT,
105 unsigned int);
106extern void darwin_asm_output_aligned_decl_common (FILE *, tree, const char *,
107 unsigned HOST_WIDE_INT,
108 unsigned int);
109
3101faab 110extern bool darwin_binds_local_p (const_tree);
ed5b9f96 111extern void darwin_cpp_builtins (struct cpp_reader *);
26705988
IS
112
113extern void darwin_init_cfstring_builtins (unsigned);
114extern tree darwin_fold_builtin (tree, int, tree *, bool);
115extern tree darwin_objc_construct_string (tree);
116extern bool darwin_cfstring_p (tree);
91ebb981
IS
117extern bool darwin_cfstring_ref_p (const_tree);
118extern void darwin_check_cfstring_format_arg (tree, tree);
119extern tree darwin_build_constant_cfstring (tree);
26705988
IS
120extern void darwin_enter_string_into_cfstring_table (tree);
121
ab0ff804 122extern void darwin_asm_output_anchor (rtx symbol);
46a99b06 123extern bool darwin_use_anchors_for_symbol_p (const_rtx symbol);
f475fd3c
MS
124extern bool darwin_kextabi_p (void);
125extern void darwin_override_options (void);
fb220235 126extern void darwin_patch_builtins (void);