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