1*38fd1498Szrj /* Default macros to initialize the lang_hooks data structure. 2*38fd1498Szrj Copyright (C) 2001-2018 Free Software Foundation, Inc. 3*38fd1498Szrj Contributed by Alexandre Oliva <aoliva@redhat.com> 4*38fd1498Szrj 5*38fd1498Szrj This file is part of GCC. 6*38fd1498Szrj 7*38fd1498Szrj GCC is free software; you can redistribute it and/or modify 8*38fd1498Szrj it under the terms of the GNU General Public License as published by 9*38fd1498Szrj the Free Software Foundation; either version 3, or (at your option) 10*38fd1498Szrj any later version. 11*38fd1498Szrj 12*38fd1498Szrj GCC is distributed in the hope that it will be useful, 13*38fd1498Szrj but WITHOUT ANY WARRANTY; without even the implied warranty of 14*38fd1498Szrj MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*38fd1498Szrj GNU General Public License for more details. 16*38fd1498Szrj 17*38fd1498Szrj You should have received a copy of the GNU General Public License 18*38fd1498Szrj along with GCC; see the file COPYING3. If not see 19*38fd1498Szrj <http://www.gnu.org/licenses/>. */ 20*38fd1498Szrj 21*38fd1498Szrj #ifndef GCC_LANG_HOOKS_DEF_H 22*38fd1498Szrj #define GCC_LANG_HOOKS_DEF_H 23*38fd1498Szrj 24*38fd1498Szrj #include "hooks.h" 25*38fd1498Szrj 26*38fd1498Szrj struct diagnostic_info; 27*38fd1498Szrj class substring_loc; 28*38fd1498Szrj 29*38fd1498Szrj /* Note to creators of new hooks: 30*38fd1498Szrj 31*38fd1498Szrj The macros in this file should NOT be surrounded by a 32*38fd1498Szrj #ifdef...#endif pair, since this file declares the defaults. Each 33*38fd1498Szrj front end overrides any hooks it wishes to, in the file containing 34*38fd1498Szrj its struct lang_hooks, AFTER including this file. */ 35*38fd1498Szrj 36*38fd1498Szrj /* See langhooks.h for the definition and documentation of each hook. */ 37*38fd1498Szrj 38*38fd1498Szrj extern void lhd_do_nothing (void); 39*38fd1498Szrj extern void lhd_do_nothing_t (tree); 40*38fd1498Szrj extern void lhd_do_nothing_f (struct function *); 41*38fd1498Szrj extern tree lhd_pass_through_t (tree); 42*38fd1498Szrj extern void lhd_register_dumps (gcc::dump_manager *); 43*38fd1498Szrj extern bool lhd_post_options (const char **); 44*38fd1498Szrj extern alias_set_type lhd_get_alias_set (tree); 45*38fd1498Szrj extern tree lhd_return_null_tree (tree); 46*38fd1498Szrj extern tree lhd_return_null_const_tree (const_tree); 47*38fd1498Szrj extern tree lhd_do_nothing_iii_return_null_tree (int, int, int); 48*38fd1498Szrj extern void lhd_print_tree_nothing (FILE *, tree, int); 49*38fd1498Szrj extern const char *lhd_decl_printable_name (tree, int); 50*38fd1498Szrj extern const char *lhd_dwarf_name (tree, int); 51*38fd1498Szrj extern int lhd_types_compatible_p (tree, tree); 52*38fd1498Szrj extern void lhd_print_error_function (diagnostic_context *, 53*38fd1498Szrj const char *, struct diagnostic_info *); 54*38fd1498Szrj extern void lhd_set_decl_assembler_name (tree decl); 55*38fd1498Szrj extern void lhd_overwrite_decl_assembler_name (tree decl, tree name); 56*38fd1498Szrj extern bool lhd_warn_unused_global_decl (const_tree); 57*38fd1498Szrj extern tree lhd_type_for_size (unsigned precision, int unsignedp); 58*38fd1498Szrj extern void lhd_incomplete_type_error (location_t, const_tree, const_tree); 59*38fd1498Szrj extern tree lhd_type_promotes_to (tree); 60*38fd1498Szrj extern void lhd_register_builtin_type (tree, const char *); 61*38fd1498Szrj extern bool lhd_decl_ok_for_sibcall (const_tree); 62*38fd1498Szrj extern size_t lhd_tree_size (enum tree_code); 63*38fd1498Szrj extern HOST_WIDE_INT lhd_to_target_charset (HOST_WIDE_INT); 64*38fd1498Szrj extern tree lhd_expr_to_decl (tree, bool *, bool *); 65*38fd1498Szrj extern tree lhd_builtin_function (tree); 66*38fd1498Szrj extern tree lhd_enum_underlying_base_type (const_tree); 67*38fd1498Szrj 68*38fd1498Szrj /* Declarations of default tree inlining hooks. */ 69*38fd1498Szrj extern void lhd_initialize_diagnostics (diagnostic_context *); 70*38fd1498Szrj extern void lhd_init_options (unsigned int, 71*38fd1498Szrj struct cl_decoded_option *); 72*38fd1498Szrj extern bool lhd_complain_wrong_lang_p (const struct cl_option *); 73*38fd1498Szrj extern bool lhd_handle_option (size_t, const char *, int, int, location_t, 74*38fd1498Szrj const struct cl_option_handlers *); 75*38fd1498Szrj 76*38fd1498Szrj 77*38fd1498Szrj /* Declarations for tree gimplification hooks. */ 78*38fd1498Szrj extern int lhd_gimplify_expr (tree *, gimple_seq *, gimple_seq *); 79*38fd1498Szrj extern enum omp_clause_default_kind lhd_omp_predetermined_sharing (tree); 80*38fd1498Szrj extern tree lhd_omp_assignment (tree, tree, tree); 81*38fd1498Szrj extern void lhd_omp_finish_clause (tree, gimple_seq *); 82*38fd1498Szrj struct gimplify_omp_ctx; 83*38fd1498Szrj extern void lhd_omp_firstprivatize_type_sizes (struct gimplify_omp_ctx *, 84*38fd1498Szrj tree); 85*38fd1498Szrj extern bool lhd_omp_mappable_type (tree); 86*38fd1498Szrj extern bool lhd_omp_scalar_p (tree); 87*38fd1498Szrj 88*38fd1498Szrj extern const char *lhd_get_substring_location (const substring_loc &, 89*38fd1498Szrj location_t *out_loc); 90*38fd1498Szrj extern int lhd_decl_dwarf_attribute (const_tree, int); 91*38fd1498Szrj extern int lhd_type_dwarf_attribute (const_tree, int); 92*38fd1498Szrj 93*38fd1498Szrj #define LANG_HOOKS_NAME "GNU unknown" 94*38fd1498Szrj #define LANG_HOOKS_IDENTIFIER_SIZE sizeof (struct lang_identifier) 95*38fd1498Szrj #define LANG_HOOKS_INIT hook_bool_void_false 96*38fd1498Szrj #define LANG_HOOKS_FINISH lhd_do_nothing 97*38fd1498Szrj #define LANG_HOOKS_PARSE_FILE lhd_do_nothing 98*38fd1498Szrj #define LANG_HOOKS_OPTION_LANG_MASK hook_uint_void_0 99*38fd1498Szrj #define LANG_HOOKS_INIT_OPTIONS_STRUCT hook_void_gcc_optionsp 100*38fd1498Szrj #define LANG_HOOKS_INIT_OPTIONS lhd_init_options 101*38fd1498Szrj #define LANG_HOOKS_INITIALIZE_DIAGNOSTICS lhd_initialize_diagnostics 102*38fd1498Szrj #define LANG_HOOKS_REGISTER_DUMPS lhd_register_dumps 103*38fd1498Szrj #define LANG_HOOKS_COMPLAIN_WRONG_LANG_P lhd_complain_wrong_lang_p 104*38fd1498Szrj #define LANG_HOOKS_HANDLE_OPTION lhd_handle_option 105*38fd1498Szrj #define LANG_HOOKS_POST_OPTIONS lhd_post_options 106*38fd1498Szrj #define LANG_HOOKS_MISSING_NORETURN_OK_P hook_bool_tree_true 107*38fd1498Szrj #define LANG_HOOKS_GET_ALIAS_SET lhd_get_alias_set 108*38fd1498Szrj #define LANG_HOOKS_FINISH_INCOMPLETE_DECL lhd_do_nothing_t 109*38fd1498Szrj #define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL lhd_do_nothing_t 110*38fd1498Szrj #define LANG_HOOKS_SET_DECL_ASSEMBLER_NAME lhd_set_decl_assembler_name 111*38fd1498Szrj #define LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME lhd_overwrite_decl_assembler_name 112*38fd1498Szrj #define LANG_HOOKS_PRINT_STATISTICS lhd_do_nothing 113*38fd1498Szrj #define LANG_HOOKS_PRINT_XNODE lhd_print_tree_nothing 114*38fd1498Szrj #define LANG_HOOKS_PRINT_DECL lhd_print_tree_nothing 115*38fd1498Szrj #define LANG_HOOKS_PRINT_TYPE lhd_print_tree_nothing 116*38fd1498Szrj #define LANG_HOOKS_PRINT_IDENTIFIER lhd_print_tree_nothing 117*38fd1498Szrj #define LANG_HOOKS_PRINT_ERROR_FUNCTION lhd_print_error_function 118*38fd1498Szrj #define LANG_HOOKS_DECL_PRINTABLE_NAME lhd_decl_printable_name 119*38fd1498Szrj #define LANG_HOOKS_DWARF_NAME lhd_dwarf_name 120*38fd1498Szrj #define LANG_HOOKS_FREE_LANG_DATA lhd_do_nothing_t 121*38fd1498Szrj #define LANG_HOOKS_TREE_SIZE lhd_tree_size 122*38fd1498Szrj #define LANG_HOOKS_TYPES_COMPATIBLE_P lhd_types_compatible_p 123*38fd1498Szrj #define LANG_HOOKS_BUILTIN_FUNCTION lhd_builtin_function 124*38fd1498Szrj #define LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE LANG_HOOKS_BUILTIN_FUNCTION 125*38fd1498Szrj #define LANG_HOOKS_EXPR_TO_DECL lhd_expr_to_decl 126*38fd1498Szrj #define LANG_HOOKS_TO_TARGET_CHARSET lhd_to_target_charset 127*38fd1498Szrj #define LANG_HOOKS_INIT_TS lhd_do_nothing 128*38fd1498Szrj #define LANG_HOOKS_EH_PERSONALITY lhd_gcc_personality 129*38fd1498Szrj #define LANG_HOOKS_EH_RUNTIME_TYPE lhd_pass_through_t 130*38fd1498Szrj #define LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS NULL 131*38fd1498Szrj #define LANG_HOOKS_BLOCK_MAY_FALLTHRU hook_bool_const_tree_true 132*38fd1498Szrj #define LANG_HOOKS_EH_USE_CXA_END_CLEANUP false 133*38fd1498Szrj #define LANG_HOOKS_DEEP_UNSHARING false 134*38fd1498Szrj #define LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS false 135*38fd1498Szrj #define LANG_HOOKS_EMITS_BEGIN_STMT false 136*38fd1498Szrj #define LANG_HOOKS_RUN_LANG_SELFTESTS lhd_do_nothing 137*38fd1498Szrj #define LANG_HOOKS_GET_SUBSTRING_LOCATION lhd_get_substring_location 138*38fd1498Szrj 139*38fd1498Szrj /* Attribute hooks. */ 140*38fd1498Szrj #define LANG_HOOKS_ATTRIBUTE_TABLE NULL 141*38fd1498Szrj #define LANG_HOOKS_COMMON_ATTRIBUTE_TABLE NULL 142*38fd1498Szrj #define LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE NULL 143*38fd1498Szrj 144*38fd1498Szrj /* Tree inlining hooks. */ 145*38fd1498Szrj #define LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P \ 146*38fd1498Szrj hook_bool_tree_tree_false 147*38fd1498Szrj 148*38fd1498Szrj #define LANG_HOOKS_TREE_INLINING_INITIALIZER { \ 149*38fd1498Szrj LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P, \ 150*38fd1498Szrj } 151*38fd1498Szrj 152*38fd1498Szrj /* Hooks for tree gimplification. */ 153*38fd1498Szrj #define LANG_HOOKS_GIMPLIFY_EXPR lhd_gimplify_expr 154*38fd1498Szrj 155*38fd1498Szrj /* Tree dump hooks. */ 156*38fd1498Szrj extern bool lhd_tree_dump_dump_tree (void *, tree); 157*38fd1498Szrj extern int lhd_tree_dump_type_quals (const_tree); 158*38fd1498Szrj extern tree lhd_make_node (enum tree_code); 159*38fd1498Szrj 160*38fd1498Szrj #define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN lhd_tree_dump_dump_tree 161*38fd1498Szrj #define LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN lhd_tree_dump_type_quals 162*38fd1498Szrj 163*38fd1498Szrj #define LANG_HOOKS_TREE_DUMP_INITIALIZER { \ 164*38fd1498Szrj LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, \ 165*38fd1498Szrj LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN \ 166*38fd1498Szrj } 167*38fd1498Szrj 168*38fd1498Szrj /* Types hooks. There are no reasonable defaults for most of them, 169*38fd1498Szrj so we create a compile-time error instead. */ 170*38fd1498Szrj extern tree lhd_unit_size_without_reusable_padding (tree); 171*38fd1498Szrj 172*38fd1498Szrj #define LANG_HOOKS_MAKE_TYPE lhd_make_node 173*38fd1498Szrj #define LANG_HOOKS_CLASSIFY_RECORD NULL 174*38fd1498Szrj #define LANG_HOOKS_TYPE_FOR_SIZE lhd_type_for_size 175*38fd1498Szrj #define LANG_HOOKS_INCOMPLETE_TYPE_ERROR lhd_incomplete_type_error 176*38fd1498Szrj #define LANG_HOOKS_GENERIC_TYPE_P hook_bool_const_tree_false 177*38fd1498Szrj #define LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS hook_tree_const_tree_null 178*38fd1498Szrj #define LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS hook_tree_const_tree_null 179*38fd1498Szrj #define LANG_HOOKS_FUNCTION_PARAMETER_PACK_P hook_bool_const_tree_false 180*38fd1498Szrj #define LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS hook_tree_const_tree_null 181*38fd1498Szrj #define LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P hook_bool_const_tree_false 182*38fd1498Szrj #define LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P \ 183*38fd1498Szrj hook_bool_tree_tree_false 184*38fd1498Szrj #define LANG_HOOKS_GET_GENERIC_FUNCTION_DECL hook_tree_const_tree_null 185*38fd1498Szrj #define LANG_HOOKS_TYPE_PROMOTES_TO lhd_type_promotes_to 186*38fd1498Szrj #define LANG_HOOKS_REGISTER_BUILTIN_TYPE lhd_register_builtin_type 187*38fd1498Szrj #define LANG_HOOKS_TYPE_MAX_SIZE lhd_return_null_const_tree 188*38fd1498Szrj #define LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES \ 189*38fd1498Szrj lhd_omp_firstprivatize_type_sizes 190*38fd1498Szrj #define LANG_HOOKS_OMP_MAPPABLE_TYPE lhd_omp_mappable_type 191*38fd1498Szrj #define LANG_HOOKS_TYPE_HASH_EQ NULL 192*38fd1498Szrj #define LANG_HOOKS_COPY_LANG_QUALIFIERS NULL 193*38fd1498Szrj #define LANG_HOOKS_GET_ARRAY_DESCR_INFO NULL 194*38fd1498Szrj #define LANG_HOOKS_GET_SUBRANGE_BOUNDS NULL 195*38fd1498Szrj #define LANG_HOOKS_GET_TYPE_BIAS NULL 196*38fd1498Szrj #define LANG_HOOKS_DESCRIPTIVE_TYPE NULL 197*38fd1498Szrj #define LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE reconstruct_complex_type 198*38fd1498Szrj #define LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE lhd_enum_underlying_base_type 199*38fd1498Szrj #define LANG_HOOKS_GET_DEBUG_TYPE NULL 200*38fd1498Szrj #define LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO NULL 201*38fd1498Szrj #define LANG_HOOKS_TYPE_DWARF_ATTRIBUTE lhd_type_dwarf_attribute 202*38fd1498Szrj #define LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING lhd_unit_size_without_reusable_padding 203*38fd1498Szrj 204*38fd1498Szrj #define LANG_HOOKS_FOR_TYPES_INITIALIZER { \ 205*38fd1498Szrj LANG_HOOKS_MAKE_TYPE, \ 206*38fd1498Szrj LANG_HOOKS_CLASSIFY_RECORD, \ 207*38fd1498Szrj LANG_HOOKS_TYPE_FOR_MODE, \ 208*38fd1498Szrj LANG_HOOKS_TYPE_FOR_SIZE, \ 209*38fd1498Szrj LANG_HOOKS_GENERIC_TYPE_P, \ 210*38fd1498Szrj LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS, \ 211*38fd1498Szrj LANG_HOOKS_TYPE_PROMOTES_TO, \ 212*38fd1498Szrj LANG_HOOKS_REGISTER_BUILTIN_TYPE, \ 213*38fd1498Szrj LANG_HOOKS_INCOMPLETE_TYPE_ERROR, \ 214*38fd1498Szrj LANG_HOOKS_TYPE_MAX_SIZE, \ 215*38fd1498Szrj LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES, \ 216*38fd1498Szrj LANG_HOOKS_OMP_MAPPABLE_TYPE, \ 217*38fd1498Szrj LANG_HOOKS_TYPE_HASH_EQ, \ 218*38fd1498Szrj LANG_HOOKS_COPY_LANG_QUALIFIERS, \ 219*38fd1498Szrj LANG_HOOKS_GET_ARRAY_DESCR_INFO, \ 220*38fd1498Szrj LANG_HOOKS_GET_SUBRANGE_BOUNDS, \ 221*38fd1498Szrj LANG_HOOKS_GET_TYPE_BIAS, \ 222*38fd1498Szrj LANG_HOOKS_DESCRIPTIVE_TYPE, \ 223*38fd1498Szrj LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE, \ 224*38fd1498Szrj LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE, \ 225*38fd1498Szrj LANG_HOOKS_GET_DEBUG_TYPE, \ 226*38fd1498Szrj LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO, \ 227*38fd1498Szrj LANG_HOOKS_TYPE_DWARF_ATTRIBUTE, \ 228*38fd1498Szrj LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING \ 229*38fd1498Szrj } 230*38fd1498Szrj 231*38fd1498Szrj /* Declaration hooks. */ 232*38fd1498Szrj #define LANG_HOOKS_GLOBAL_BINDINGS_P global_bindings_p 233*38fd1498Szrj #define LANG_HOOKS_PUSHDECL pushdecl 234*38fd1498Szrj #define LANG_HOOKS_GETDECLS getdecls 235*38fd1498Szrj #define LANG_HOOKS_DECL_DWARF_ATTRIBUTE lhd_decl_dwarf_attribute 236*38fd1498Szrj #define LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL lhd_warn_unused_global_decl 237*38fd1498Szrj #define LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS NULL 238*38fd1498Szrj #define LANG_HOOKS_DECL_OK_FOR_SIBCALL lhd_decl_ok_for_sibcall 239*38fd1498Szrj #define LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE hook_bool_const_tree_false 240*38fd1498Szrj #define LANG_HOOKS_OMP_PREDETERMINED_SHARING lhd_omp_predetermined_sharing 241*38fd1498Szrj #define LANG_HOOKS_OMP_REPORT_DECL lhd_pass_through_t 242*38fd1498Szrj #define LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR hook_bool_tree_bool_false 243*38fd1498Szrj #define LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE hook_bool_tree_bool_false 244*38fd1498Szrj #define LANG_HOOKS_OMP_PRIVATE_OUTER_REF hook_bool_tree_false 245*38fd1498Szrj #define LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR hook_tree_tree_tree_tree_null 246*38fd1498Szrj #define LANG_HOOKS_OMP_CLAUSE_COPY_CTOR lhd_omp_assignment 247*38fd1498Szrj #define LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP lhd_omp_assignment 248*38fd1498Szrj #define LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR NULL 249*38fd1498Szrj #define LANG_HOOKS_OMP_CLAUSE_DTOR hook_tree_tree_tree_null 250*38fd1498Szrj #define LANG_HOOKS_OMP_FINISH_CLAUSE lhd_omp_finish_clause 251*38fd1498Szrj #define LANG_HOOKS_OMP_SCALAR_P lhd_omp_scalar_p 252*38fd1498Szrj 253*38fd1498Szrj #define LANG_HOOKS_DECLS { \ 254*38fd1498Szrj LANG_HOOKS_GLOBAL_BINDINGS_P, \ 255*38fd1498Szrj LANG_HOOKS_PUSHDECL, \ 256*38fd1498Szrj LANG_HOOKS_GETDECLS, \ 257*38fd1498Szrj LANG_HOOKS_DECL_DWARF_ATTRIBUTE, \ 258*38fd1498Szrj LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P, \ 259*38fd1498Szrj LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P, \ 260*38fd1498Szrj LANG_HOOKS_GET_GENERIC_FUNCTION_DECL, \ 261*38fd1498Szrj LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, \ 262*38fd1498Szrj LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS, \ 263*38fd1498Szrj LANG_HOOKS_DECL_OK_FOR_SIBCALL, \ 264*38fd1498Szrj LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE, \ 265*38fd1498Szrj LANG_HOOKS_OMP_PREDETERMINED_SHARING, \ 266*38fd1498Szrj LANG_HOOKS_OMP_REPORT_DECL, \ 267*38fd1498Szrj LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR, \ 268*38fd1498Szrj LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE, \ 269*38fd1498Szrj LANG_HOOKS_OMP_PRIVATE_OUTER_REF, \ 270*38fd1498Szrj LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR, \ 271*38fd1498Szrj LANG_HOOKS_OMP_CLAUSE_COPY_CTOR, \ 272*38fd1498Szrj LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, \ 273*38fd1498Szrj LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR, \ 274*38fd1498Szrj LANG_HOOKS_OMP_CLAUSE_DTOR, \ 275*38fd1498Szrj LANG_HOOKS_OMP_FINISH_CLAUSE, \ 276*38fd1498Szrj LANG_HOOKS_OMP_SCALAR_P \ 277*38fd1498Szrj } 278*38fd1498Szrj 279*38fd1498Szrj /* LTO hooks. */ 280*38fd1498Szrj extern void lhd_begin_section (const char *); 281*38fd1498Szrj extern void lhd_append_data (const void *, size_t, void *); 282*38fd1498Szrj extern void lhd_end_section (void); 283*38fd1498Szrj 284*38fd1498Szrj #define LANG_HOOKS_BEGIN_SECTION lhd_begin_section 285*38fd1498Szrj #define LANG_HOOKS_APPEND_DATA lhd_append_data 286*38fd1498Szrj #define LANG_HOOKS_END_SECTION lhd_end_section 287*38fd1498Szrj 288*38fd1498Szrj #define LANG_HOOKS_LTO { \ 289*38fd1498Szrj LANG_HOOKS_BEGIN_SECTION, \ 290*38fd1498Szrj LANG_HOOKS_APPEND_DATA, \ 291*38fd1498Szrj LANG_HOOKS_END_SECTION \ 292*38fd1498Szrj } 293*38fd1498Szrj 294*38fd1498Szrj /* The whole thing. The structure is defined in langhooks.h. */ 295*38fd1498Szrj #define LANG_HOOKS_INITIALIZER { \ 296*38fd1498Szrj LANG_HOOKS_NAME, \ 297*38fd1498Szrj LANG_HOOKS_IDENTIFIER_SIZE, \ 298*38fd1498Szrj LANG_HOOKS_FREE_LANG_DATA, \ 299*38fd1498Szrj LANG_HOOKS_TREE_SIZE, \ 300*38fd1498Szrj LANG_HOOKS_OPTION_LANG_MASK, \ 301*38fd1498Szrj LANG_HOOKS_INIT_OPTIONS_STRUCT, \ 302*38fd1498Szrj LANG_HOOKS_INIT_OPTIONS, \ 303*38fd1498Szrj LANG_HOOKS_INITIALIZE_DIAGNOSTICS, \ 304*38fd1498Szrj LANG_HOOKS_REGISTER_DUMPS, \ 305*38fd1498Szrj LANG_HOOKS_COMPLAIN_WRONG_LANG_P, \ 306*38fd1498Szrj LANG_HOOKS_HANDLE_OPTION, \ 307*38fd1498Szrj LANG_HOOKS_POST_OPTIONS, \ 308*38fd1498Szrj LANG_HOOKS_INIT, \ 309*38fd1498Szrj LANG_HOOKS_FINISH, \ 310*38fd1498Szrj LANG_HOOKS_PARSE_FILE, \ 311*38fd1498Szrj LANG_HOOKS_MISSING_NORETURN_OK_P, \ 312*38fd1498Szrj LANG_HOOKS_GET_ALIAS_SET, \ 313*38fd1498Szrj LANG_HOOKS_FINISH_INCOMPLETE_DECL, \ 314*38fd1498Szrj LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, \ 315*38fd1498Szrj LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, \ 316*38fd1498Szrj LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME, \ 317*38fd1498Szrj LANG_HOOKS_PRINT_STATISTICS, \ 318*38fd1498Szrj LANG_HOOKS_PRINT_XNODE, \ 319*38fd1498Szrj LANG_HOOKS_PRINT_DECL, \ 320*38fd1498Szrj LANG_HOOKS_PRINT_TYPE, \ 321*38fd1498Szrj LANG_HOOKS_PRINT_IDENTIFIER, \ 322*38fd1498Szrj LANG_HOOKS_DECL_PRINTABLE_NAME, \ 323*38fd1498Szrj LANG_HOOKS_DWARF_NAME, \ 324*38fd1498Szrj LANG_HOOKS_TYPES_COMPATIBLE_P, \ 325*38fd1498Szrj LANG_HOOKS_PRINT_ERROR_FUNCTION, \ 326*38fd1498Szrj LANG_HOOKS_TO_TARGET_CHARSET, \ 327*38fd1498Szrj LANG_HOOKS_ATTRIBUTE_TABLE, \ 328*38fd1498Szrj LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, \ 329*38fd1498Szrj LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, \ 330*38fd1498Szrj LANG_HOOKS_TREE_INLINING_INITIALIZER, \ 331*38fd1498Szrj LANG_HOOKS_TREE_DUMP_INITIALIZER, \ 332*38fd1498Szrj LANG_HOOKS_DECLS, \ 333*38fd1498Szrj LANG_HOOKS_FOR_TYPES_INITIALIZER, \ 334*38fd1498Szrj LANG_HOOKS_LTO, \ 335*38fd1498Szrj LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS, \ 336*38fd1498Szrj LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS, \ 337*38fd1498Szrj LANG_HOOKS_FUNCTION_PARAMETER_PACK_P, \ 338*38fd1498Szrj LANG_HOOKS_GIMPLIFY_EXPR, \ 339*38fd1498Szrj LANG_HOOKS_BUILTIN_FUNCTION, \ 340*38fd1498Szrj LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE, \ 341*38fd1498Szrj LANG_HOOKS_INIT_TS, \ 342*38fd1498Szrj LANG_HOOKS_EXPR_TO_DECL, \ 343*38fd1498Szrj LANG_HOOKS_EH_PERSONALITY, \ 344*38fd1498Szrj LANG_HOOKS_EH_RUNTIME_TYPE, \ 345*38fd1498Szrj LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \ 346*38fd1498Szrj LANG_HOOKS_BLOCK_MAY_FALLTHRU, \ 347*38fd1498Szrj LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \ 348*38fd1498Szrj LANG_HOOKS_DEEP_UNSHARING, \ 349*38fd1498Szrj LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS, \ 350*38fd1498Szrj LANG_HOOKS_EMITS_BEGIN_STMT, \ 351*38fd1498Szrj LANG_HOOKS_RUN_LANG_SELFTESTS, \ 352*38fd1498Szrj LANG_HOOKS_GET_SUBSTRING_LOCATION \ 353*38fd1498Szrj } 354*38fd1498Szrj 355*38fd1498Szrj #endif /* GCC_LANG_HOOKS_DEF_H */ 356