GCC Middle and Back End API Reference
lang_hooks Struct Reference

#include <langhooks.h>

Collaboration diagram for lang_hooks:

Public Types

enum  PT_flags { PT_begin_pragma = 1 << 0 }
 

Data Fields

const char * name
 
size_t identifier_size
 
void(* free_lang_data )(tree)
 
size_t(* tree_size )(enum tree_code)
 
unsigned int(* option_lang_mask )(void)
 
void(* init_options_struct )(struct gcc_options *opts)
 
void(* init_options )(unsigned int decoded_options_count, struct cl_decoded_option *decoded_options)
 
void(* initialize_diagnostics )(diagnostic_context *)
 
void(* preprocess_main_file )(cpp_reader *, line_maps *, const line_map_ordinary *)
 
void(* preprocess_options )(cpp_reader *)
 
void(* preprocess_undef )(cpp_reader *, location_t, cpp_hashnode *)
 
uintptr_t(* preprocess_token )(cpp_reader *, const cpp_token *, uintptr_t)
 
void(* register_dumps )(gcc::dump_manager *)
 
bool(* complain_wrong_lang_p )(const struct cl_option *option)
 
bool(* handle_option )(size_t code, const char *arg, HOST_WIDE_INT value, int kind, location_t loc, const struct cl_option_handlers *handlers)
 
bool(* post_options )(const char **)
 
bool(* init )(void)
 
void(* finish )(void)
 
void(* parse_file )(void)
 
bool(* missing_noreturn_ok_p )(tree)
 
alias_set_type(* get_alias_set )(tree)
 
void(* finish_incomplete_decl )(tree)
 
void(* dup_lang_specific_decl )(tree)
 
void(* set_decl_assembler_name )(tree)
 
void(* overwrite_decl_assembler_name )(tree, tree)
 
void(* print_statistics )(void)
 
lang_print_tree_hook print_xnode
 
lang_print_tree_hook print_decl
 
lang_print_tree_hook print_type
 
lang_print_tree_hook print_identifier
 
const char *(* decl_printable_name )(tree decl, int verbosity)
 
const char *(* dwarf_name )(tree, int verbosity)
 
int(* types_compatible_p )(tree x, tree y)
 
void(* print_error_function )(diagnostic_text_output_format &, const char *, const struct diagnostic_info *)
 
HOST_WIDE_INT(* to_target_charset )(HOST_WIDE_INT)
 
array_slice< const struct scoped_attribute_specs *const > attribute_table
 
struct lang_hooks_for_tree_inlining tree_inlining
 
struct lang_hooks_for_tree_dump tree_dump
 
struct lang_hooks_for_decls decls
 
struct lang_hooks_for_types types
 
struct lang_hooks_for_lto lto
 
tree(* get_innermost_generic_parms )(const_tree)
 
tree(* get_innermost_generic_args )(const_tree)
 
bool(* function_parameter_pack_p )(const_tree)
 
int(* gimplify_expr )(tree *, gimple_seq *, gimple_seq *)
 
tree(* builtin_function )(tree decl)
 
tree(* builtin_function_ext_scope )(tree decl)
 
tree(* simulate_builtin_function_decl )(tree decl)
 
void(* init_ts )(void)
 
tree(* expr_to_decl )(tree expr, bool *tc, bool *se)
 
tree(* eh_personality )(void)
 
tree(* eh_runtime_type )(tree)
 
tree(* eh_protect_cleanup_actions )(void)
 
bool(* block_may_fallthru )(const_tree)
 
bool eh_use_cxa_end_cleanup
 
bool deep_unsharing
 
bool custom_function_descriptors
 
bool emits_begin_stmt
 
void(* run_lang_selftests )(void)
 
const char *(* get_substring_location )(const substring_loc &, location_t *out_loc)
 
void(* finalize_early_debug )(void)
 
const char *(* get_sarif_source_language )(const char *filename)
 

Detailed Description

Language-specific hooks.  See langhooks-def.h for defaults.   

Member Enumeration Documentation

◆ PT_flags

Enumerator
PT_begin_pragma 

Field Documentation

◆ attribute_table

array_slice<const struct scoped_attribute_specs *const> lang_hooks::attribute_table

Referenced by init_attributes().

◆ block_may_fallthru

bool(* lang_hooks::block_may_fallthru) (const_tree)

Referenced by block_may_fallthru().

◆ builtin_function

tree(* lang_hooks::builtin_function) (tree decl)

Referenced by add_builtin_function().

◆ builtin_function_ext_scope

tree(* lang_hooks::builtin_function_ext_scope) (tree decl)

◆ complain_wrong_lang_p

bool(* lang_hooks::complain_wrong_lang_p) (const struct cl_option *option)

Referenced by complain_wrong_lang().

◆ custom_function_descriptors

bool lang_hooks::custom_function_descriptors

◆ decl_printable_name

◆ decls

◆ deep_unsharing

bool lang_hooks::deep_unsharing

Referenced by unshare_body().

◆ dup_lang_specific_decl

void(* lang_hooks::dup_lang_specific_decl) (tree)

◆ dwarf_name

◆ eh_personality

tree(* lang_hooks::eh_personality) (void)

◆ eh_protect_cleanup_actions

tree(* lang_hooks::eh_protect_cleanup_actions) (void)

◆ eh_runtime_type

tree(* lang_hooks::eh_runtime_type) (tree)

Referenced by add_type_for_runtime().

◆ eh_use_cxa_end_cleanup

bool lang_hooks::eh_use_cxa_end_cleanup

Referenced by gen_eh_region().

◆ emits_begin_stmt

bool lang_hooks::emits_begin_stmt

◆ expr_to_decl

tree(* lang_hooks::expr_to_decl) (tree expr, bool *tc, bool *se)

◆ finalize_early_debug

void(* lang_hooks::finalize_early_debug) (void)

◆ finish

void(* lang_hooks::finish) (void)

Referenced by finalize().

◆ finish_incomplete_decl

void(* lang_hooks::finish_incomplete_decl) (tree)

◆ free_lang_data

void(* lang_hooks::free_lang_data) (tree)

◆ function_parameter_pack_p

bool(* lang_hooks::function_parameter_pack_p) (const_tree)

Referenced by gen_formal_types_die().

◆ get_alias_set

alias_set_type(* lang_hooks::get_alias_set) (tree)

◆ get_innermost_generic_args

tree(* lang_hooks::get_innermost_generic_args) (const_tree)

Referenced by gen_generic_params_dies().

◆ get_innermost_generic_parms

tree(* lang_hooks::get_innermost_generic_parms) (const_tree)

Referenced by gen_generic_params_dies().

◆ get_sarif_source_language

const char *(* lang_hooks::get_sarif_source_language) (const char *filename)

◆ get_substring_location

const char *(* lang_hooks::get_substring_location) (const substring_loc &, location_t *out_loc)

◆ gimplify_expr

int(* lang_hooks::gimplify_expr) (tree *, gimple_seq *, gimple_seq *)

Referenced by gimplify_expr().

◆ handle_option

bool(* lang_hooks::handle_option) (size_t code, const char *arg, HOST_WIDE_INT value, int kind, location_t loc, const struct cl_option_handlers *handlers)

Referenced by lang_handle_option().

◆ identifier_size

size_t lang_hooks::identifier_size

Referenced by tree_code_size().

◆ init

bool(* lang_hooks::init) (void)

Referenced by lang_dependent_init().

◆ init_options

void(* lang_hooks::init_options) (unsigned int decoded_options_count, struct cl_decoded_option *decoded_options)

Referenced by toplev::main().

◆ init_options_struct

void(* lang_hooks::init_options_struct) (struct gcc_options *opts)

Referenced by toplev::main().

◆ init_ts

void(* lang_hooks::init_ts) (void)

Referenced by init_ttree().

◆ initialize_diagnostics

void(* lang_hooks::initialize_diagnostics) (diagnostic_context *)

Referenced by init_options_once().

◆ lto

◆ missing_noreturn_ok_p

bool(* lang_hooks::missing_noreturn_ok_p) (tree)

Referenced by warn_function_noreturn().

◆ name

◆ option_lang_mask

unsigned int(* lang_hooks::option_lang_mask) (void)

◆ overwrite_decl_assembler_name

void(* lang_hooks::overwrite_decl_assembler_name) (tree, tree)

◆ parse_file

void(* lang_hooks::parse_file) (void)

Referenced by compile_file().

◆ post_options

bool(* lang_hooks::post_options) (const char **)

Referenced by toplev::main().

◆ preprocess_main_file

void(* lang_hooks::preprocess_main_file) (cpp_reader *, line_maps *, const line_map_ordinary *)

◆ preprocess_options

void(* lang_hooks::preprocess_options) (cpp_reader *)

◆ preprocess_token

uintptr_t(* lang_hooks::preprocess_token) (cpp_reader *, const cpp_token *, uintptr_t)

◆ preprocess_undef

void(* lang_hooks::preprocess_undef) (cpp_reader *, location_t, cpp_hashnode *)

◆ print_decl

lang_print_tree_hook lang_hooks::print_decl

Referenced by dump_tree_via_hooks(), and print_node().

◆ print_error_function

void(* lang_hooks::print_error_function) (diagnostic_text_output_format &, const char *, const struct diagnostic_info *)

◆ print_identifier

lang_print_tree_hook lang_hooks::print_identifier

Referenced by dump_tree_via_hooks(), and print_node().

◆ print_statistics

void(* lang_hooks::print_statistics) (void)

◆ print_type

lang_print_tree_hook lang_hooks::print_type

Referenced by dump_tree_via_hooks(), and print_node().

◆ print_xnode

lang_print_tree_hook lang_hooks::print_xnode

Referenced by print_node().

◆ register_dumps

void(* lang_hooks::register_dumps) (gcc::dump_manager *)

◆ run_lang_selftests

void(* lang_hooks::run_lang_selftests) (void)

◆ set_decl_assembler_name

void(* lang_hooks::set_decl_assembler_name) (tree)

Referenced by decl_assembler_name().

◆ simulate_builtin_function_decl

tree(* lang_hooks::simulate_builtin_function_decl) (tree decl)

◆ to_target_charset

HOST_WIDE_INT(* lang_hooks::to_target_charset) (HOST_WIDE_INT)

◆ tree_dump

struct lang_hooks_for_tree_dump lang_hooks::tree_dump

Referenced by dequeue_and_dump().

◆ tree_inlining

struct lang_hooks_for_tree_inlining lang_hooks::tree_inlining

◆ tree_size

size_t(* lang_hooks::tree_size) (enum tree_code)

Referenced by tree_code_size().

◆ types

struct lang_hooks_for_types lang_hooks::types

Referenced by add_gnat_descriptive_type_attribute(), add_iv_candidate_for_use(), tree_switch_conversion::switch_conversion::array_value_type(), base_type_die(), base_type_for_mode(), tree_switch_conversion::switch_conversion::build_arrays(), build_common_builtin_nodes(), build_fn_info_type(), build_split_load(), build_type_attribute_qual_variant(), build_word_mode_vector_type(), check_lang_type(), clear_padding_flush(), clear_padding_type(), compute_doloop_base_on_mode(), convert_to_integer_1(), convert_to_pointer_1(), coverage_obj_init(), default_emutls_var_fields(), do_jump(), do_narrow(), do_store_flag(), tree_switch_conversion::bit_test_cluster::emit(), emit_library_call_value_1(), emit_push_insn(), emutls_common_1(), type_cache_hasher::equal(), expand_doubleword_mod(), expand_expr_real_1(), expand_single_bit_test(), expand_vector_parallel(), find_bitfield_repr_type(), finish_bitfield_representative(), fixup_child_record_type(), gen_generic_params_dies(), get_emutls_object_type(), get_gcov_type(), get_gcov_unsigned_t(), get_narrower(), get_nl_goto_field(), get_related_vectype_for_scalar_type(), get_stack_local_alignment(), get_unwidened(), gimple_fold_builtin_memset(), gimple_get_alias_set(), gimplify_scalar_mode_aggregate_compare(), gimplify_va_arg_expr(), init_eh(), init_ic_make_global_vars(), initialize_sanitizer_builtins(), install_var_field(), lhd_enum_underlying_base_type(), lhd_simulate_enum_decl(), lhd_simulate_record_decl(), lower_omp_task_reductions(), make_debug_expr_from_rtl(), make_range_step(), make_tree(), max_int_size_in_bytes(), modified_type_die(), native_encode_fixed(), oacc_do_neutering(), omp_clause_aligned_alignment(), omp_firstprivatize_type_sizes(), ompdevlow_adjust_simt_enter(), optimize_bit_field_compare(), optimize_range_tests_to_bit_test(), range_check_type(), rt_bb_visited::rt_bb_visited(), scan_omp_parallel(), scan_omp_single(), scan_omp_target(), scan_omp_task(), scan_omp_teams(), separate_decls_in_region(), set_stack_check_libfunc(), should_emit_struct_debug(), simd_clone_adjust_argument_types(), size_in_bytes_loc(), store_constructor(), store_expr(), subrange_type_for_debug_p(), supportable_narrowing_operation(), supportable_widening_operation(), task_copyfn_remap_type(), try_casesi(), vect_build_one_gather_load_call(), vect_build_one_scatter_store_call(), vect_get_loop_mask(), vect_set_loop_condition_partial_vectors_avx512(), and vectorizable_simd_clone_call().

◆ types_compatible_p

int(* lang_hooks::types_compatible_p) (tree x, tree y)

The documentation for this struct was generated from the following file: