]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/darwin-protos.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / darwin-protos.h
CommitLineData
ee890fe2 1/* Prototypes.
a945c346 2 Copyright (C) 2001-2024 Free Software Foundation, Inc.
ee890fe2 3
7ec022b2 4This file is part of GCC.
ee890fe2 5
7ec022b2 6GCC is free software; you can redistribute it and/or modify
ee890fe2 7it under the terms of the GNU General Public License as published by
2f83c7d6 8the Free Software Foundation; either version 3, or (at your option)
ee890fe2
SS
9any later version.
10
7ec022b2 11GCC is distributed in the hope that it will be useful,
ee890fe2
SS
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
2f83c7d6
NC
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
ee890fe2 19
9342ec4d
IS
20#ifndef CONFIG_DARWIN_PROTOS_H
21#define CONFIG_DARWIN_PROTOS_H
22
d6b5193b 23extern void darwin_init_sections (void);
9c808aad 24extern int name_needs_quotes (const char *);
ee890fe2 25
11abc112 26extern void machopic_validate_stub_or_non_lazy_ptr (const char *);
ee890fe2 27
1622229c 28extern void machopic_output_function_base_name (FILE *);
11abc112
MM
29extern const char *machopic_indirection_name (rtx, bool);
30extern const char *machopic_mcount_stub_name (void);
88d9bfe6 31extern bool machopic_should_output_picbase_label (void);
e1c5c877 32extern const char *machopic_get_function_picbase (void);
ee890fe2 33
ee890fe2
SS
34#ifdef RTX_CODE
35
08a6a74b 36extern rtx machopic_gen_offset (rtx);
9c808aad 37extern int machopic_operand_p (rtx);
fee3eacd 38extern int machopic_symbol_defined_p (rtx sym_ref);
11abc112 39extern enum machopic_addr_class machopic_classify_symbol (rtx);
ee890fe2 40
9c808aad
AJ
41extern rtx machopic_indirect_data_reference (rtx, rtx);
42extern rtx machopic_indirect_call_target (rtx);
ef4bddc2 43extern rtx machopic_legitimize_pic_address (rtx, machine_mode, rtx);
ee890fe2 44
9c808aad
AJ
45extern void machopic_asm_out_constructor (rtx, int);
46extern void machopic_asm_out_destructor (rtx, int);
ef4bddc2 47extern section *machopic_select_rtx_section (machine_mode, rtx,
a285ba2e 48 unsigned HOST_WIDE_INT);
ee890fe2
SS
49#endif /* RTX_CODE */
50
51#ifdef TREE_CODE
52
11abc112 53extern void machopic_define_symbol (rtx);
9c808aad 54extern void darwin_encode_section_info (tree, rtx, int);
16d6f994 55extern void darwin_set_default_type_attributes (tree);
ee890fe2
SS
56
57#endif /* TREE_CODE */
58
24c78b3a 59extern int machopic_reloc_rw_mask (void);
d6b5193b 60extern section *machopic_select_section (tree, int, unsigned HOST_WIDE_INT);
3be131be 61
f16d3f39 62extern section *darwin_function_section (tree, enum node_frequency, bool, bool);
50b0b78a 63extern section *darwin_tm_clone_table_section (void);
14d11d40
IS
64extern void darwin_function_switched_text_sections (FILE *, tree, bool);
65
4746cf84 66extern void darwin_unique_section (tree decl, int reloc);
c18a5b6c 67extern void darwin_asm_named_section (const char *, unsigned int, tree);
4746cf84
MA
68extern void darwin_non_lazy_pcrel (FILE *, rtx);
69
eeab4d81 70extern void darwin_emit_unwind_label (FILE *, tree, int, int);
083cad55 71extern void darwin_emit_except_table_label (FILE *);
5d46ec3d 72extern rtx darwin_make_eh_symbol_indirect (rtx, bool);
491d5b3c 73extern bool darwin_should_restore_cfa_state (void);
4746cf84 74
9c808aad
AJ
75extern void darwin_pragma_ignore (struct cpp_reader *);
76extern void darwin_pragma_options (struct cpp_reader *);
77extern void darwin_pragma_unused (struct cpp_reader *);
16d6f994 78extern void darwin_pragma_ms_struct (struct cpp_reader *);
b64a1b53 79
192d0f89 80extern void darwin_file_start (void);
9c808aad 81extern void darwin_file_end (void);
a5fe455b 82
c082f9f3
SB
83extern void darwin_asm_lto_start (void);
84extern void darwin_asm_lto_end (void);
85
8e3e233b 86extern void darwin_mark_decl_preserved (const char *);
4746cf84 87
f475fd3c 88extern tree darwin_handle_kext_attribute (tree *, tree, tree, int, bool *);
005c1a13
GK
89extern tree darwin_handle_weak_import_attribute (tree *node, tree name,
90 tree args, int flags,
91 bool * no_add_attrs);
9c808aad 92extern void machopic_output_stub (FILE *, const char *, const char *);
9c808aad 93extern void darwin_globalize_label (FILE *, const char *);
6ce4806b 94extern void darwin_assemble_visibility (tree, int);
46a99b06 95
9c808aad 96extern void darwin_asm_output_dwarf_delta (FILE *, int, const char *,
7180b1a6 97 const char *, HOST_WIDE_INT);
192d0f89 98extern void darwin_asm_output_dwarf_offset (FILE *, int, const char *,
7180b1a6 99 HOST_WIDE_INT, section *);
46a99b06
IS
100
101extern void darwin_asm_declare_object_name (FILE *, const char *, tree);
e4f7c483
AS
102extern void darwin_asm_declare_constant_name (FILE *, const char *,
103 const_tree, HOST_WIDE_INT);
46a99b06
IS
104
105extern void darwin_output_aligned_bss (FILE *, tree, const char *,
106 unsigned HOST_WIDE_INT, unsigned int);
107
108extern void darwin_asm_output_aligned_decl_local (FILE *, tree, const char *,
109 unsigned HOST_WIDE_INT,
110 unsigned int);
111extern void darwin_asm_output_aligned_decl_common (FILE *, tree, const char *,
112 unsigned HOST_WIDE_INT,
113 unsigned int);
114
3101faab 115extern bool darwin_binds_local_p (const_tree);
ed5b9f96 116extern void darwin_cpp_builtins (struct cpp_reader *);
26705988 117
d1d46f9f 118extern tree darwin_init_cfstring_builtins (unsigned);
26705988 119extern tree darwin_fold_builtin (tree, int, tree *, bool);
26705988 120extern bool darwin_cfstring_p (tree);
91ebb981 121extern tree darwin_build_constant_cfstring (tree);
26705988
IS
122extern void darwin_enter_string_into_cfstring_table (tree);
123
ab0ff804 124extern void darwin_asm_output_anchor (rtx symbol);
46a99b06 125extern bool darwin_use_anchors_for_symbol_p (const_rtx symbol);
f475fd3c
MS
126extern bool darwin_kextabi_p (void);
127extern void darwin_override_options (void);
fb220235 128extern void darwin_patch_builtins (void);
41cf94fb 129extern void darwin_rename_builtins (void);
bae974e6 130extern bool darwin_libc_has_function (enum function_class fn_class, tree);
9342ec4d 131
47346acb
IS
132/* For this port, there are several possible sources for external toolchain
133 components (e.g. as, ld, dsymutil) and we have to alter the allowable
134 output in response to which version and source is in use. */
135enum darwin_external_toolchain {
136 DET_UNKNOWN=0,
137 CCTOOLS,
138 DWARFUTILS,
139 LLVM,
140 CLANG
141};
142
9342ec4d 143#endif /* CONFIG_DARWIN_PROTOS_H */