]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/langhooks-def.h
Update copyright years.
[thirdparty/gcc.git] / gcc / langhooks-def.h
CommitLineData
d23c55c2 1/* Default macros to initialize the lang_hooks data structure.
99dee823 2 Copyright (C) 2001-2021 Free Software Foundation, Inc.
d23c55c2
NB
3 Contributed by Alexandre Oliva <aoliva@redhat.com>
4
63b025a5 5This file is part of GCC.
d23c55c2 6
63b025a5 7GCC is free software; you can redistribute it and/or modify
d23c55c2 8it under the terms of the GNU General Public License as published by
9dcd6f09 9the Free Software Foundation; either version 3, or (at your option)
d23c55c2
NB
10any later version.
11
63b025a5 12GCC is distributed in the hope that it will be useful,
d23c55c2
NB
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
9dcd6f09
NC
18along with GCC; see the file COPYING3. If not see
19<http://www.gnu.org/licenses/>. */
d23c55c2
NB
20
21#ifndef GCC_LANG_HOOKS_DEF_H
22#define GCC_LANG_HOOKS_DEF_H
23
e5f3b786
NB
24#include "hooks.h"
25
c94ed7a1 26struct diagnostic_info;
e5106e27 27class substring_loc;
7cb32822 28
d23c55c2
NB
29/* Note to creators of new hooks:
30
31 The macros in this file should NOT be surrounded by a
32 #ifdef...#endif pair, since this file declares the defaults. Each
33 front end overrides any hooks it wishes to, in the file containing
7fb26bb0 34 its struct lang_hooks, AFTER including this file. */
d23c55c2
NB
35
36/* See langhooks.h for the definition and documentation of each hook. */
37
0c20a65f
AJ
38extern void lhd_do_nothing (void);
39extern void lhd_do_nothing_t (tree);
0c20a65f 40extern void lhd_do_nothing_f (struct function *);
f9417da1 41extern tree lhd_pass_through_t (tree);
2a8a8d7b 42extern void lhd_register_dumps (gcc::dump_manager *);
0c20a65f 43extern bool lhd_post_options (const char **);
4862826d 44extern alias_set_type lhd_get_alias_set (tree);
0c20a65f 45extern tree lhd_return_null_tree (tree);
fa233e34 46extern tree lhd_return_null_const_tree (const_tree);
a7e8c268 47extern tree lhd_do_nothing_iii_return_null_tree (int, int, int);
0c20a65f
AJ
48extern void lhd_print_tree_nothing (FILE *, tree, int);
49extern const char *lhd_decl_printable_name (tree, int);
721a8ac5 50extern const char *lhd_dwarf_name (tree, int);
6de9cd9a 51extern int lhd_types_compatible_p (tree, tree);
1ebe4b4f 52extern void lhd_print_error_function (diagnostic_context *,
c94ed7a1 53 const char *, struct diagnostic_info *);
5f3682ff
NS
54extern void lhd_set_decl_assembler_name (tree decl);
55extern void lhd_overwrite_decl_assembler_name (tree decl, tree name);
ac7d7749 56extern bool lhd_warn_unused_global_decl (const_tree);
ab341f50
RS
57extern tree lhd_simulate_enum_decl (location_t, const char *,
58 vec<string_int_pair>);
8a3a6ab4 59extern tree lhd_type_for_size (unsigned precision, int unsignedp);
4f2e1536 60extern void lhd_incomplete_type_error (location_t, const_tree, const_tree);
0c20a65f 61extern tree lhd_type_promotes_to (tree);
9649812a 62extern void lhd_register_builtin_type (tree, const char *);
58f9752a 63extern bool lhd_decl_ok_for_sibcall (const_tree);
0c20a65f 64extern size_t lhd_tree_size (enum tree_code);
c5ff069d 65extern HOST_WIDE_INT lhd_to_target_charset (HOST_WIDE_INT);
51eed280 66extern tree lhd_expr_to_decl (tree, bool *, bool *);
d7f09764 67extern tree lhd_builtin_function (tree);
7315daa6 68extern tree lhd_enum_underlying_base_type (const_tree);
d23c55c2
NB
69
70/* Declarations of default tree inlining hooks. */
1ebe4b4f 71extern void lhd_initialize_diagnostics (diagnostic_context *);
7a9bf9a4
JM
72extern void lhd_init_options (unsigned int,
73 struct cl_decoded_option *);
74extern bool lhd_complain_wrong_lang_p (const struct cl_option *);
00abf86c
MS
75extern bool lhd_handle_option (size_t, const char *, HOST_WIDE_INT, int,
76 location_t, const struct cl_option_handlers *);
25c84396 77
0c20a65f 78
6de9cd9a 79/* Declarations for tree gimplification hooks. */
726a989a 80extern int lhd_gimplify_expr (tree *, gimple_seq *, gimple_seq *);
953ff289 81extern enum omp_clause_default_kind lhd_omp_predetermined_sharing (tree);
93535a2b 82extern enum omp_clause_defaultmap_kind lhd_omp_predetermined_mapping (tree);
953ff289 83extern tree lhd_omp_assignment (tree, tree, tree);
972da557 84extern void lhd_omp_finish_clause (tree, gimple_seq *, bool);
953ff289
DN
85struct gimplify_omp_ctx;
86extern void lhd_omp_firstprivatize_type_sizes (struct gimplify_omp_ctx *,
87 tree);
acf0174b 88extern bool lhd_omp_mappable_type (tree);
b4c3a85b 89extern bool lhd_omp_scalar_p (tree);
3af02d32
KCY
90extern tree *lhd_omp_get_decl_init (tree);
91extern void lhd_omp_finish_decl_inits ();
6de9cd9a 92
e5106e27
DM
93extern const char *lhd_get_substring_location (const substring_loc &,
94 location_t *out_loc);
81b42cc6 95extern int lhd_decl_dwarf_attribute (const_tree, int);
6905c577 96extern int lhd_type_dwarf_attribute (const_tree, int);
c6ef9d8d 97extern void lhd_finalize_early_debug (void);
e5106e27 98
3ac88239
NB
99#define LANG_HOOKS_NAME "GNU unknown"
100#define LANG_HOOKS_IDENTIFIER_SIZE sizeof (struct lang_identifier)
4bfec483 101#define LANG_HOOKS_INIT hook_bool_void_false
d23c55c2 102#define LANG_HOOKS_FINISH lhd_do_nothing
b37421c6 103#define LANG_HOOKS_PARSE_FILE lhd_do_nothing
7a9bf9a4 104#define LANG_HOOKS_OPTION_LANG_MASK hook_uint_void_0
7e4aae92 105#define LANG_HOOKS_INIT_OPTIONS_STRUCT hook_void_gcc_optionsp
7a9bf9a4 106#define LANG_HOOKS_INIT_OPTIONS lhd_init_options
fc95cf70 107#define LANG_HOOKS_INITIALIZE_DIAGNOSTICS lhd_initialize_diagnostics
8a97aed0
NS
108#define LANG_HOOKS_PREPROCESS_MAIN_FILE NULL
109#define LANG_HOOKS_PREPROCESS_OPTIONS NULL
110#define LANG_HOOKS_PREPROCESS_UNDEF NULL
111#define LANG_HOOKS_PREPROCESS_TOKEN NULL
2a8a8d7b 112#define LANG_HOOKS_REGISTER_DUMPS lhd_register_dumps
7a9bf9a4 113#define LANG_HOOKS_COMPLAIN_WRONG_LANG_P lhd_complain_wrong_lang_p
5f20c657 114#define LANG_HOOKS_HANDLE_OPTION lhd_handle_option
4bfec483 115#define LANG_HOOKS_POST_OPTIONS lhd_post_options
e8924938 116#define LANG_HOOKS_MISSING_NORETURN_OK_P hook_bool_tree_true
d23c55c2 117#define LANG_HOOKS_GET_ALIAS_SET lhd_get_alias_set
48a7a235 118#define LANG_HOOKS_FINISH_INCOMPLETE_DECL lhd_do_nothing_t
63e1b1c4 119#define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL lhd_do_nothing_t
599bba86 120#define LANG_HOOKS_SET_DECL_ASSEMBLER_NAME lhd_set_decl_assembler_name
5f3682ff 121#define LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME lhd_overwrite_decl_assembler_name
5d69f816
NB
122#define LANG_HOOKS_PRINT_STATISTICS lhd_do_nothing
123#define LANG_HOOKS_PRINT_XNODE lhd_print_tree_nothing
124#define LANG_HOOKS_PRINT_DECL lhd_print_tree_nothing
125#define LANG_HOOKS_PRINT_TYPE lhd_print_tree_nothing
126#define LANG_HOOKS_PRINT_IDENTIFIER lhd_print_tree_nothing
7cb32822 127#define LANG_HOOKS_PRINT_ERROR_FUNCTION lhd_print_error_function
7afff7cf 128#define LANG_HOOKS_DECL_PRINTABLE_NAME lhd_decl_printable_name
721a8ac5 129#define LANG_HOOKS_DWARF_NAME lhd_dwarf_name
4537ec0c 130#define LANG_HOOKS_FREE_LANG_DATA lhd_do_nothing_t
d78e771d 131#define LANG_HOOKS_TREE_SIZE lhd_tree_size
6de9cd9a 132#define LANG_HOOKS_TYPES_COMPATIBLE_P lhd_types_compatible_p
c79efc4d 133#define LANG_HOOKS_BUILTIN_FUNCTION lhd_builtin_function
5779e713 134#define LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE LANG_HOOKS_BUILTIN_FUNCTION
74078538 135#define LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL LANG_HOOKS_BUILTIN_FUNCTION
73f397d4 136#define LANG_HOOKS_EXPR_TO_DECL lhd_expr_to_decl
c5ff069d 137#define LANG_HOOKS_TO_TARGET_CHARSET lhd_to_target_charset
820cc88f 138#define LANG_HOOKS_INIT_TS lhd_do_nothing
f9417da1
RG
139#define LANG_HOOKS_EH_PERSONALITY lhd_gcc_personality
140#define LANG_HOOKS_EH_RUNTIME_TYPE lhd_pass_through_t
3b06d379 141#define LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS NULL
88cd0e88 142#define LANG_HOOKS_BLOCK_MAY_FALLTHRU hook_bool_const_tree_true
384c400a 143#define LANG_HOOKS_EH_USE_CXA_END_CLEANUP false
616f1431 144#define LANG_HOOKS_DEEP_UNSHARING false
4c640e26 145#define LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS false
96a95ac1 146#define LANG_HOOKS_EMITS_BEGIN_STMT false
895aa8e1 147#define LANG_HOOKS_RUN_LANG_SELFTESTS lhd_do_nothing
e5106e27 148#define LANG_HOOKS_GET_SUBSTRING_LOCATION lhd_get_substring_location
c6ef9d8d 149#define LANG_HOOKS_FINALIZE_EARLY_DEBUG lhd_finalize_early_debug
d23c55c2 150
349ae713
NB
151/* Attribute hooks. */
152#define LANG_HOOKS_ATTRIBUTE_TABLE NULL
153#define LANG_HOOKS_COMMON_ATTRIBUTE_TABLE NULL
154#define LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE NULL
155
d23c55c2 156/* Tree inlining hooks. */
8bcefb43 157#define LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P \
5377d5ba 158 hook_bool_tree_tree_false
d23c55c2
NB
159
160#define LANG_HOOKS_TREE_INLINING_INITIALIZER { \
8bcefb43 161 LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P, \
25c84396 162}
d23c55c2 163
6de9cd9a
DN
164/* Hooks for tree gimplification. */
165#define LANG_HOOKS_GIMPLIFY_EXPR lhd_gimplify_expr
4985cde3 166
89d684bb 167/* Tree dump hooks. */
0c20a65f 168extern bool lhd_tree_dump_dump_tree (void *, tree);
ac7d7749 169extern int lhd_tree_dump_type_quals (const_tree);
b9dcdee4 170extern tree lhd_make_node (enum tree_code);
89d684bb
BM
171
172#define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN lhd_tree_dump_dump_tree
173#define LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN lhd_tree_dump_type_quals
174
175#define LANG_HOOKS_TREE_DUMP_INITIALIZER { \
176 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, \
177 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN \
43577e6b
NB
178}
179
48a7a235
NB
180/* Types hooks. There are no reasonable defaults for most of them,
181 so we create a compile-time error instead. */
b7fc43d7
RB
182extern tree lhd_unit_size_without_reusable_padding (tree);
183
b9dcdee4 184#define LANG_HOOKS_MAKE_TYPE lhd_make_node
ab341f50 185#define LANG_HOOKS_SIMULATE_ENUM_DECL lhd_simulate_enum_decl
394d9fe7 186#define LANG_HOOKS_CLASSIFY_RECORD NULL
8a3a6ab4 187#define LANG_HOOKS_TYPE_FOR_SIZE lhd_type_for_size
7a228918 188#define LANG_HOOKS_INCOMPLETE_TYPE_ERROR lhd_incomplete_type_error
ac7d7749 189#define LANG_HOOKS_GENERIC_TYPE_P hook_bool_const_tree_false
f9329c35
DS
190#define LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS hook_tree_const_tree_null
191#define LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS hook_tree_const_tree_null
d40a19da 192#define LANG_HOOKS_FUNCTION_PARAMETER_PACK_P hook_bool_const_tree_false
f9329c35
DS
193#define LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS hook_tree_const_tree_null
194#define LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P hook_bool_const_tree_false
d40a19da
DS
195#define LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P \
196 hook_bool_tree_tree_false
197#define LANG_HOOKS_GET_GENERIC_FUNCTION_DECL hook_tree_const_tree_null
ab393bf1 198#define LANG_HOOKS_TYPE_PROMOTES_TO lhd_type_promotes_to
9649812a 199#define LANG_HOOKS_REGISTER_BUILTIN_TYPE lhd_register_builtin_type
ac7d7749 200#define LANG_HOOKS_TYPE_MAX_SIZE lhd_return_null_const_tree
953ff289
DN
201#define LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES \
202 lhd_omp_firstprivatize_type_sizes
acf0174b 203#define LANG_HOOKS_OMP_MAPPABLE_TYPE lhd_omp_mappable_type
2dff8956 204#define LANG_HOOKS_TYPE_HASH_EQ NULL
27c825c5 205#define LANG_HOOKS_COPY_LANG_QUALIFIERS NULL
fad0afd7 206#define LANG_HOOKS_GET_ARRAY_DESCR_INFO NULL
84fb43a1 207#define LANG_HOOKS_GET_SUBRANGE_BOUNDS NULL
69c5f9d7 208#define LANG_HOOKS_GET_TYPE_BIAS NULL
2a9d769a 209#define LANG_HOOKS_DESCRIPTIVE_TYPE NULL
5dc11954 210#define LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE reconstruct_complex_type
7315daa6 211#define LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE lhd_enum_underlying_base_type
eb59e428 212#define LANG_HOOKS_GET_DEBUG_TYPE NULL
2971780e 213#define LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO NULL
6905c577 214#define LANG_HOOKS_TYPE_DWARF_ATTRIBUTE lhd_type_dwarf_attribute
b7fc43d7 215#define LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING lhd_unit_size_without_reusable_padding
f1e639b1
NB
216
217#define LANG_HOOKS_FOR_TYPES_INITIALIZER { \
b0c48229 218 LANG_HOOKS_MAKE_TYPE, \
ac2cfa6c 219 LANG_HOOKS_SIMULATE_ENUM_DECL, \
394d9fe7 220 LANG_HOOKS_CLASSIFY_RECORD, \
b0c48229 221 LANG_HOOKS_TYPE_FOR_MODE, \
ceef8ce4 222 LANG_HOOKS_TYPE_FOR_SIZE, \
39ef6592 223 LANG_HOOKS_GENERIC_TYPE_P, \
f9329c35 224 LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS, \
ab393bf1 225 LANG_HOOKS_TYPE_PROMOTES_TO, \
9649812a 226 LANG_HOOKS_REGISTER_BUILTIN_TYPE, \
7548281d 227 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, \
8963a517 228 LANG_HOOKS_TYPE_MAX_SIZE, \
953ff289 229 LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES, \
acf0174b 230 LANG_HOOKS_OMP_MAPPABLE_TYPE, \
2dff8956 231 LANG_HOOKS_TYPE_HASH_EQ, \
27c825c5 232 LANG_HOOKS_COPY_LANG_QUALIFIERS, \
fad0afd7 233 LANG_HOOKS_GET_ARRAY_DESCR_INFO, \
84fb43a1 234 LANG_HOOKS_GET_SUBRANGE_BOUNDS, \
69c5f9d7 235 LANG_HOOKS_GET_TYPE_BIAS, \
2a9d769a 236 LANG_HOOKS_DESCRIPTIVE_TYPE, \
7315daa6 237 LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE, \
eb59e428 238 LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE, \
2971780e 239 LANG_HOOKS_GET_DEBUG_TYPE, \
6905c577 240 LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO, \
b7fc43d7
RB
241 LANG_HOOKS_TYPE_DWARF_ATTRIBUTE, \
242 LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING \
f1e639b1
NB
243}
244
43577e6b 245/* Declaration hooks. */
43577e6b 246#define LANG_HOOKS_GLOBAL_BINDINGS_P global_bindings_p
43577e6b
NB
247#define LANG_HOOKS_PUSHDECL pushdecl
248#define LANG_HOOKS_GETDECLS getdecls
81b42cc6 249#define LANG_HOOKS_DECL_DWARF_ATTRIBUTE lhd_decl_dwarf_attribute
ef4f94ac 250#define LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL lhd_warn_unused_global_decl
d7438551 251#define LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS NULL
e076f71a 252#define LANG_HOOKS_DECL_OK_FOR_SIBCALL lhd_decl_ok_for_sibcall
92e63bd2 253#define LANG_HOOKS_OMP_ARRAY_DATA hook_tree_tree_bool_null
08c14aaa 254#define LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR hook_bool_const_tree_false
a2c26c50 255#define LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT hook_tree_tree_bool_null
58f9752a 256#define LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE hook_bool_const_tree_false
953ff289 257#define LANG_HOOKS_OMP_PREDETERMINED_SHARING lhd_omp_predetermined_sharing
93535a2b 258#define LANG_HOOKS_OMP_PREDETERMINED_MAPPING lhd_omp_predetermined_mapping
79943d19 259#define LANG_HOOKS_OMP_REPORT_DECL lhd_pass_through_t
953ff289
DN
260#define LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR hook_bool_tree_bool_false
261#define LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE hook_bool_tree_bool_false
a68ab351
JJ
262#define LANG_HOOKS_OMP_PRIVATE_OUTER_REF hook_bool_tree_false
263#define LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR hook_tree_tree_tree_tree_null
953ff289
DN
264#define LANG_HOOKS_OMP_CLAUSE_COPY_CTOR lhd_omp_assignment
265#define LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP lhd_omp_assignment
da6f124d 266#define LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR NULL
953ff289 267#define LANG_HOOKS_OMP_CLAUSE_DTOR hook_tree_tree_tree_null
f014c653 268#define LANG_HOOKS_OMP_FINISH_CLAUSE lhd_omp_finish_clause
b4c3a85b 269#define LANG_HOOKS_OMP_SCALAR_P lhd_omp_scalar_p
3af02d32
KCY
270#define LANG_HOOKS_OMP_GET_DECL_INIT lhd_omp_get_decl_init
271#define LANG_HOOKS_OMP_FINISH_DECL_INITS lhd_omp_finish_decl_inits
43577e6b
NB
272
273#define LANG_HOOKS_DECLS { \
43577e6b 274 LANG_HOOKS_GLOBAL_BINDINGS_P, \
43577e6b 275 LANG_HOOKS_PUSHDECL, \
ef4f94ac 276 LANG_HOOKS_GETDECLS, \
81b42cc6 277 LANG_HOOKS_DECL_DWARF_ATTRIBUTE, \
f9329c35 278 LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P, \
d40a19da
DS
279 LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P, \
280 LANG_HOOKS_GET_GENERIC_FUNCTION_DECL, \
2b59501b 281 LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, \
d7438551 282 LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS, \
e076f71a 283 LANG_HOOKS_DECL_OK_FOR_SIBCALL, \
92e63bd2 284 LANG_HOOKS_OMP_ARRAY_DATA, \
08c14aaa 285 LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR, \
a2c26c50 286 LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT, \
953ff289
DN
287 LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE, \
288 LANG_HOOKS_OMP_PREDETERMINED_SHARING, \
93535a2b 289 LANG_HOOKS_OMP_PREDETERMINED_MAPPING, \
79943d19 290 LANG_HOOKS_OMP_REPORT_DECL, \
953ff289
DN
291 LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR, \
292 LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE, \
a68ab351 293 LANG_HOOKS_OMP_PRIVATE_OUTER_REF, \
953ff289
DN
294 LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR, \
295 LANG_HOOKS_OMP_CLAUSE_COPY_CTOR, \
296 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, \
da6f124d 297 LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR, \
a68ab351 298 LANG_HOOKS_OMP_CLAUSE_DTOR, \
b4c3a85b 299 LANG_HOOKS_OMP_FINISH_CLAUSE, \
3af02d32
KCY
300 LANG_HOOKS_OMP_SCALAR_P, \
301 LANG_HOOKS_OMP_GET_DECL_INIT, \
302 LANG_HOOKS_OMP_FINISH_DECL_INITS \
43577e6b 303}
89d684bb 304
d7f09764
DN
305/* LTO hooks. */
306extern void lhd_begin_section (const char *);
307extern void lhd_append_data (const void *, size_t, void *);
308extern void lhd_end_section (void);
309
310#define LANG_HOOKS_BEGIN_SECTION lhd_begin_section
311#define LANG_HOOKS_APPEND_DATA lhd_append_data
312#define LANG_HOOKS_END_SECTION lhd_end_section
313
314#define LANG_HOOKS_LTO { \
315 LANG_HOOKS_BEGIN_SECTION, \
316 LANG_HOOKS_APPEND_DATA, \
317 LANG_HOOKS_END_SECTION \
318}
319
89d684bb 320/* The whole thing. The structure is defined in langhooks.h. */
d23c55c2 321#define LANG_HOOKS_INITIALIZER { \
3ac88239
NB
322 LANG_HOOKS_NAME, \
323 LANG_HOOKS_IDENTIFIER_SIZE, \
4537ec0c 324 LANG_HOOKS_FREE_LANG_DATA, \
d78e771d 325 LANG_HOOKS_TREE_SIZE, \
7a9bf9a4 326 LANG_HOOKS_OPTION_LANG_MASK, \
a75bfaa6 327 LANG_HOOKS_INIT_OPTIONS_STRUCT, \
d23c55c2 328 LANG_HOOKS_INIT_OPTIONS, \
fc95cf70 329 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, \
8a97aed0
NS
330 LANG_HOOKS_PREPROCESS_MAIN_FILE, \
331 LANG_HOOKS_PREPROCESS_OPTIONS, \
332 LANG_HOOKS_PREPROCESS_UNDEF, \
333 LANG_HOOKS_PREPROCESS_TOKEN, \
2a8a8d7b 334 LANG_HOOKS_REGISTER_DUMPS, \
7a9bf9a4 335 LANG_HOOKS_COMPLAIN_WRONG_LANG_P, \
2772ef3e 336 LANG_HOOKS_HANDLE_OPTION, \
d23c55c2 337 LANG_HOOKS_POST_OPTIONS, \
4d6baafa
NB
338 LANG_HOOKS_INIT, \
339 LANG_HOOKS_FINISH, \
52dabb6c 340 LANG_HOOKS_PARSE_FILE, \
e8924938 341 LANG_HOOKS_MISSING_NORETURN_OK_P, \
d23c55c2 342 LANG_HOOKS_GET_ALIAS_SET, \
48a7a235 343 LANG_HOOKS_FINISH_INCOMPLETE_DECL, \
63e1b1c4 344 LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, \
599bba86 345 LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, \
5f3682ff 346 LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME, \
5d69f816
NB
347 LANG_HOOKS_PRINT_STATISTICS, \
348 LANG_HOOKS_PRINT_XNODE, \
349 LANG_HOOKS_PRINT_DECL, \
350 LANG_HOOKS_PRINT_TYPE, \
351 LANG_HOOKS_PRINT_IDENTIFIER, \
7afff7cf 352 LANG_HOOKS_DECL_PRINTABLE_NAME, \
721a8ac5 353 LANG_HOOKS_DWARF_NAME, \
6de9cd9a 354 LANG_HOOKS_TYPES_COMPATIBLE_P, \
7cb32822 355 LANG_HOOKS_PRINT_ERROR_FUNCTION, \
c5ff069d 356 LANG_HOOKS_TO_TARGET_CHARSET, \
349ae713
NB
357 LANG_HOOKS_ATTRIBUTE_TABLE, \
358 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, \
359 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, \
89d684bb 360 LANG_HOOKS_TREE_INLINING_INITIALIZER, \
43577e6b 361 LANG_HOOKS_TREE_DUMP_INITIALIZER, \
f1e639b1 362 LANG_HOOKS_DECLS, \
4985cde3 363 LANG_HOOKS_FOR_TYPES_INITIALIZER, \
d7f09764 364 LANG_HOOKS_LTO, \
f9329c35
DS
365 LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS, \
366 LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS, \
d40a19da 367 LANG_HOOKS_FUNCTION_PARAMETER_PACK_P, \
6de9cd9a 368 LANG_HOOKS_GIMPLIFY_EXPR, \
6e34d3a3 369 LANG_HOOKS_BUILTIN_FUNCTION, \
5779e713 370 LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE, \
74078538 371 LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL, \
820cc88f 372 LANG_HOOKS_INIT_TS, \
73f397d4 373 LANG_HOOKS_EXPR_TO_DECL, \
f9417da1
RG
374 LANG_HOOKS_EH_PERSONALITY, \
375 LANG_HOOKS_EH_RUNTIME_TYPE, \
3b06d379 376 LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \
88cd0e88 377 LANG_HOOKS_BLOCK_MAY_FALLTHRU, \
384c400a 378 LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \
895aa8e1 379 LANG_HOOKS_DEEP_UNSHARING, \
4c640e26 380 LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS, \
96a95ac1 381 LANG_HOOKS_EMITS_BEGIN_STMT, \
e5106e27 382 LANG_HOOKS_RUN_LANG_SELFTESTS, \
c6ef9d8d
RB
383 LANG_HOOKS_GET_SUBSTRING_LOCATION, \
384 LANG_HOOKS_FINALIZE_EARLY_DEBUG \
d23c55c2
NB
385}
386
387#endif /* GCC_LANG_HOOKS_DEF_H */