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 (diagnostics::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 (diagnostics::text_sink &, const char *, const diagnostics::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)
bool(*) exception_matches_type_p (tree handler_type, tree exception_type)
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

◆ exception_matches_type_p

bool(*) lang_hooks::exception_matches_type_p(tree handler_type, tree exception_type)

◆ 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)

◆ 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(diagnostics::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(diagnostics::text_sink &, const char *, const diagnostics::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_doloop(), add_iv_candidate_for_use(), tree_switch_conversion::switch_conversion::array_value_type(), asan_expand_poison_ifn(), 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(), match_spaceship(), 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: