GCC Middle and Back End API Reference
is-a.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  reinterpret_is_a_helper< T >
 
struct  static_is_a_helper< T >
 
struct  is_a_helper< T >
 
struct  is_a_helper< const T * >
 

Functions

template<typename T , typename U >
bool is_a (U *p)
 
template<typename T , typename U >
bool safe_is_a (U *p)
 
template<typename T , typename U >
T as_a (U *p)
 
template<typename T , typename U >
T safe_as_a (U *p)
 
template<typename T , typename U >
T dyn_cast (U *p)
 
template<typename T , typename U >
T safe_dyn_cast (U *p)
 

Function Documentation

◆ as_a()

template<typename T , typename U >
T as_a ( U * p)
inline
A generic conversion from a base type U to a derived type T.  See the
discussion above for when to use this function.   

References reinterpret_is_a_helper< T >::cast(), gcc_checking_assert, and is_a().

Referenced by add_async_clauses_and_wait(), add_const_value_attribute(), add_scope_conflicts_1(), add_taskreg_looptemp_clauses(), add_var_loc_to_decl(), inchash::add_vrange(), adjust_assumption_stmt_r(), adjust_context_and_scope(), vector_costs::adjust_cost_for_freq(), adjust_equivalence_range(), adjust_return_value(), store_change_builder::advance(), all_phi_incrs_profitable_1(), vrange_storage::alloc(), alloc_EXPR_LIST(), alloc_INSN_LIST(), allocate_phi_node(), always_throwing_noreturn_call_p(), dt_node::analyze(), loop_cand::analyze_iloop_reduction_var(), loop_cand::analyze_induction_var(), loop_cand::analyze_oloop_reduction_var(), analyze_scalar_evolution_1(), dt_node::append_match_op(), apply_args_size(), apply_result_size(), apply_return_prediction(), rtx_vector_builder::apply_step(), asan_expand_check_ifn(), associate_equivalences_with_edges(), assume_query::assume_query(), bb_note(), substitute_and_fold_dom_walker::before_dom_children(), vector_costs::better_epilogue_loop_than_p(), bitint_precision_kind(), block_label(), bound_difference(), build_vector_type_for_mode(), gori_map::calculate_gori(), assume_query::calculate_stmt(), can_reassociate_op_p(), can_throw_external(), canonicalize_loop_ivs(), capture_info::capture_info(), ccp_fold(), cgraph_update_edges_for_call_stmt_node(), chain_of_csts_start(), change_regs_in_insn(), change_zero_ext(), check_for_plus_in_loops_1(), check_oacc_kernel_gwv(), check_omp_nesting_restrictions(), check_reduction_path(), check_stmt(), cleanup_control_expr_graph(), cleanup_dead_labels(), pair_fusion_bb_info::cleanup_tombstones(), clear_bytes_written_by(), clear_padding_bitint_needs_padding_p(), clear_padding_type(), clear_visited(), decision_tree::cmp_node(), cmp_operand(), collect_fallthrough_labels(), collect_finally_tree(), collect_object_sizes_for(), uninit_analysis::collect_phi_def_edges(), compare_and_jump_seq(), ipa_icf_gimple::func_checker::compare_bb(), vector_costs::compare_inside_loop_cost(), compare_op(), compute_avail(), gori_compute::compute_operand_range(), control_flow_regions::compute_regions(), confirm_change_group(), connect_loops(), constant_after_peeling(), contains(), convert_debug_memory_address(), convert_expand_mult_copysign(), convert_gimple_call(), convert_local_reference_stmt(), convert_mode_scalar(), convert_nonlocal_reference_stmt(), convert_tramp_reference_stmt(), copy_bb(), copy_blkmode_from_reg(), copy_blkmode_to_reg(), copy_delay_slot_insn(), copy_edges_for_bb(), create_canonical_iv(), create_coalesce_list_for_region(), create_parallel_loop(), create_phi_basis(), create_trace_edges(), cse_insn(), dbr_schedule(), dead_or_predicable(), declare_vars(), decompose_kernels_region_body(), default_cstore_mode(), default_get_reg_raw_mode(), deletable_insn_p(), delete_from_delay_slot(), delete_insn(), delete_insn_chain(), delete_related_insns(), determine_value_range(), diagnose_sb_1(), diagnose_sb_2(), diagnose_tm_1(), discover_loop(), do_split_loop_on_cond(), do_tablejump(), do_warn_unused_result(), doloop_modify(), dse_optimize_stmt(), dump_gimple_try(), duplicate_insn_chain(), dynamic_object_sizes_execute_one(), gimple_outgoing_range::edge_range_p(), eliminate_dom_walker::eliminate_stmt(), eliminate_unnecessary_stmts(), emit_barrier(), emit_barrier_after(), emit_barrier_before(), emit_cstore(), emit_debug_insn(), emit_group_store(), emit_insn(), emit_jump_insn(), emit_jump_insn_after(), emit_jump_insn_after_noloc(), emit_jump_insn_after_setloc(), emit_jump_insn_before(), emit_jump_insn_before_noloc(), emit_jump_insn_before_setloc(), emit_jump_table_data(), emit_label(), emit_pattern_after_noloc(), emit_pattern_before_noloc(), emit_phi_nodes(), emit_store_flag_1(), vrange_storage::equal_p(), estimate_num_insns(), evaluate_stmt(), pass_walloca::execute(), execute_oacc_device_lower(), execute_omp_oacc_neuter_broadcast(), execute_update_addresses_taken(), expand_arith_overflow_result_store(), expand_assignment(), expand_binop(), expand_call_tm(), expand_complex_asm(), expand_complex_comparison(), expand_complex_move(), expand_compound_operation(), expand_copysign(), expand_copysign_absneg(), expand_divmod(), expand_expr_real_1(), expand_FALLTHROUGH_r(), expand_fix(), expand_function_end(), expand_gimple_basic_block(), expand_gimple_stmt_1(), expand_mult_const(), expand_mult_highpart(), expand_oacc_for(), expand_omp(), expand_omp_atomic(), expand_omp_for(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_sections(), expand_omp_synch(), expand_omp_target(), expand_omp_taskloop_for_inner(), expand_omp_taskreg(), expand_task_call(), expand_unop(), expand_vector_condition(), expand_vector_scalar_condition(), extract_cond_operands(), extract_fixed_bit_field_1(), extract_omp_for_update_vars(), fill_simple_delay_slots(), fill_slots_from_thread(), final_scan_insn_1(), find_assumption_locals_r(), find_duplicate(), find_end_label(), find_func_aliases(), find_func_clobbers(), find_moveable_pseudos(), decision_tree::find_node(), find_tail_calls(), back_threader::find_taken_edge(), find_taken_edge(), find_vdef_in_loop(), find_widening_optab_handler_and_mode(), finish_bitfield_representative(), first_active_target_insn(), vrange_storage::fits_p(), fix_crossing_conditional_branches(), fixup_call_stmt_edges_1(), fixup_debug_use(), fixup_debug_uses(), fixup_reorder_chain(), flatten_binds(), fns_cmp(), fold_builtin_atomic_compare_exchange(), fold_loop_internal_call(), range_op_handler::fold_range(), ccp_folder::fold_stmt(), fold_using_range::fold_stmt(), fold_stmt_1(), fold_strstr_to_strncmp(), follow_jumps(), force_nonfallthru_and_redirect(), force_to_mode(), gather_scalar_reductions(), dt_simplify::gen_1(), gen_int_mode(), dt_node::gen_kids(), dt_node::gen_kids_1(), gen_label_rtx(), gen_parallel_loop(), dt_operand::gen_predicate(), gen_rtx_EXPR_LIST(), gen_rtx_INSN(), gen_rtx_INSN_LIST(), gen_simplified_condition(), expr::gen_transform(), generate_loops_for_partition(), get_address_cost(), get_address_mode(), get_alias_ptr_type_for_ptr_address(), rtx_jump_table_data::get_data_mode(), get_eh_else(), get_first_nonnote_insn(), get_legacy_range(), get_loop_body_in_if_conv_order(), dt_operand::get_name(), get_nl_goto_field(), get_operand_type(), get_optab_extraction_insn(), wi::int_traits< rtx_mode_t >::get_precision(), get_references_in_stmt(), ana::switch_cfg_superedge::get_switch_stmt(), get_traditional_extraction_insn(), tm_region::get_transaction_stmt(), range_query::get_tree_range(), vrange_storage::get_vrange(), gimple_arg(), gimple_arg_ptr(), gimple_assume_body(), gimple_assume_body_ptr(), gimple_assume_guard(), gimple_assume_guard_ptr(), gimple_assume_set_guard(), gimple_build_asm_1(), gimple_build_assign_1(), gimple_build_assume(), gimple_build_bind(), gimple_build_call_1(), gimple_build_call_internal_1(), gimple_build_catch(), gimple_build_cond(), gimple_build_debug_begin_stmt(), gimple_build_debug_bind(), gimple_build_debug_inline_entry(), gimple_build_debug_source_bind(), gimple_build_eh_dispatch(), gimple_build_eh_else(), gimple_build_eh_filter(), gimple_build_eh_must_not_throw(), gimple_build_goto(), gimple_build_label(), gimple_build_omp_atomic_load(), gimple_build_omp_atomic_store(), gimple_build_omp_continue(), gimple_build_omp_critical(), gimple_build_omp_for(), gimple_build_omp_ordered(), gimple_build_omp_parallel(), gimple_build_omp_scan(), gimple_build_omp_sections(), gimple_build_omp_single(), gimple_build_omp_target(), gimple_build_omp_task(), gimple_build_omp_teams(), gimple_build_resx(), gimple_build_return(), gimple_build_switch_nlabels(), gimple_build_transaction(), gimple_build_try(), gimple_call_return_array(), gimple_call_same_target_p(), GIMPLE_CHECK2(), GIMPLE_CHECK2(), gimple_copy(), gimple_could_trap_p_1(), gimple_duplicate_sese_tail(), gimple_eh_filter_failure_ptr(), gimple_eh_filter_types(), gimple_eh_filter_types_ptr(), gimple_fold_builtin(), gimple_fold_builtin_bcopy(), gimple_fold_builtin_fprintf(), gimple_fold_builtin_memory_op(), gimple_fold_builtin_printf(), gimple_fold_builtin_snprintf(), gimple_fold_builtin_snprintf_chk(), gimple_fold_builtin_sprintf_chk(), gimple_fold_builtin_stpcpy(), gimple_fold_builtin_stxcpy_chk(), gimple_fold_builtin_stxncpy_chk(), gimple_fold_call(), gimple_fold_stmt_to_constant_1(), gimple_has_side_effects(), gimple_ic(), gimple_infer_range::gimple_infer_range(), gimple_lower_bitint(), gimple_num_args(), gimple_omp_for_clauses(), gimple_omp_for_clauses_ptr(), gimple_omp_for_collapse(), gimple_omp_for_cond(), gimple_omp_for_final(), gimple_omp_for_final_ptr(), gimple_omp_for_incr(), gimple_omp_for_incr_ptr(), gimple_omp_for_index(), gimple_omp_for_index_ptr(), gimple_omp_for_initial(), gimple_omp_for_initial_ptr(), gimple_omp_for_pre_body_ptr(), gimple_omp_for_set_clauses(), gimple_omp_for_set_cond(), gimple_omp_for_set_final(), gimple_omp_for_set_incr(), gimple_omp_for_set_index(), gimple_omp_for_set_initial(), gimple_omp_for_set_pre_body(), gimple_omp_parallel_clauses(), gimple_omp_return_lhs(), gimple_omp_return_lhs_ptr(), gimple_omp_return_set_lhs(), gimple_omp_sections_clauses(), gimple_omp_sections_clauses_ptr(), gimple_omp_sections_control(), gimple_omp_sections_control_ptr(), gimple_omp_sections_set_clauses(), gimple_omp_sections_set_control(), gimple_omp_single_clauses(), gimple_omp_single_clauses_ptr(), gimple_omp_target_clauses(), gimple_omp_target_clauses_ptr(), gimple_omp_task_arg_align(), gimple_omp_task_arg_align_ptr(), gimple_omp_task_arg_size(), gimple_omp_task_arg_size_ptr(), gimple_omp_task_child_fn(), gimple_omp_task_child_fn_ptr(), gimple_omp_task_clauses(), gimple_omp_task_clauses_ptr(), gimple_omp_task_copy_fn(), gimple_omp_task_copy_fn_ptr(), gimple_omp_task_data_arg(), gimple_omp_task_data_arg_ptr(), gimple_omp_task_set_arg_align(), gimple_omp_task_set_arg_size(), gimple_omp_task_set_child_fn(), gimple_omp_task_set_clauses(), gimple_omp_task_set_copy_fn(), gimple_omp_task_set_data_arg(), gimple_omp_taskreg_child_fn(), gimple_omp_taskreg_child_fn_ptr(), gimple_omp_taskreg_clauses(), gimple_omp_taskreg_clauses_ptr(), gimple_omp_taskreg_data_arg(), gimple_omp_taskreg_data_arg_ptr(), gimple_omp_taskreg_set_child_fn(), gimple_omp_taskreg_set_clauses(), gimple_omp_taskreg_set_data_arg(), gimple_omp_teams_clauses(), gimple_omp_teams_clauses_ptr(), gimple_phi_arg(), gimple_phi_arg(), gimple_phi_capacity(), gimple_phi_num_args(), gimple_phi_result(), gimple_phi_result_ptr(), gimple_range_adjustment(), gimple_range_ssa_names(), gimple_redirect_edge_and_branch(), gimple_regimplify_operands(), gimple_seq_first_stmt_as_a_bind(), gimple_set_bb(), gimple_set_use_ops(), gimple_set_vdef(), gimple_set_vuse(), gimple_stmt_may_fallthru(), gimple_stringop_fixed_value(), gimple_try_catch_may_fallthru(), gimple_try_cleanup_ptr(), gimple_try_eval_ptr(), gimple_verify_flow_info(), gimple_wce_cleanup_ptr(), gimple_wce_set_cleanup(), gimplify_body(), gimplify_omp_workshare(), gimplify_switch_expr(), strlen_pass::handle_builtin_memcmp(), strlen_pass::handle_builtin_string_cmp(), remove_unreachable::handle_early(), hardcfr_scan_block(), hardcfr_sibcall_search_block(), hardcfr_sibcall_search_preds(), has_stmt_been_instrumented_p(), ipa_icf::sem_function::hash_stmt(), hoist_guard(), immed_wide_int_const(), immed_wide_int_const_1(), info_for_reduction(), inherit_reload_reg(), init_derived_machine_modes(), init_emit_once(), init_expmed_one_mode(), init_expr_target(), inline_forbidden_p_stmt(), inline_string_cmp(), input_function(), input_gimple_stmt(), insert_debug_temp_for_var_def(), insert_float(), decision_tree::insert_operand(), insert_stmt_after(), rtx_sequence::insn(), insn_nothrow_p(), instrument_builtin_call(), instrument_gimple(), instrument_nonnull_return(), int_mode_for_mode(), ipa_analyze_stmt_uses(), ipa_compute_jump_functions_for_edge(), ipa_simd_modify_function_body(), ipa_tm_transform_calls_redirect(), ipcp_update_vr(), is_addr_local(), is_ctrl_altering_stmt(), is_feasible_trace(), is_host_teams_ctx(), is_nonwrapping_integer_induction(), isolate_path(), iv_phi_p(), jump_target_rtx(), label_ref_label(), label_rtx(), last_stmt_in_scope(), layout_type(), range_op_handler::lhs_op1_relation(), range_op_handler::lhs_op2_relation(), link_insn_into_chain(), loc_descriptor(), loop_iter_phi_semi_invariant_p(), lower_builtin_assume_aligned(), lower_catch(), lower_cond(), lower_eh_constructs_2(), lower_eh_must_not_throw(), lower_for(), lower_gimple_bind(), lower_gimple_return(), lower_lastprivate_conditional_clauses(), lower_oacc_reductions(), lower_omp_1(), lower_omp_critical(), lower_omp_for(), lower_omp_for_lastprivate(), lower_omp_for_scan(), lower_omp_ordered(), lower_omp_ordered_clauses(), lower_omp_scan(), lower_omp_sections(), lower_omp_single(), lower_omp_target(), lower_omp_taskreg(), lower_omp_teams(), lower_stmt(), lower_transaction(), lower_try_catch(), lower_vec_perm(), make_call_insn_raw(), make_cond_expr_edges(), make_debug_insn_raw(), make_edges_bb(), make_extraction(), make_gimple_asm_edges(), make_insn_raw(), make_jump_insn_raw(), make_note_raw(), make_return_insns(), ipa_param_body_adjustments::mark_dead_statements(), mark_insn(), mark_jump_label_1(), mark_reachable_handlers(), mark_referenced_resources(), mark_set_resources(), mark_ssa_maybe_undefs(), mark_target_live_regs(), mark_use_interesting(), match_arith_overflow(), wi::max_value(), maybe_add_nop_after_section_switch(), gimple_range_op_handler::maybe_builtin_call(), maybe_legitimize_operand(), maybe_move_debug_stmts_to_successors(), maybe_optimize_guarding_check(), maybe_optimize_range_tests(), maybe_record_in_goto_queue(), maybe_set_vectorized_backedge_value(), mem_loc_descriptor(), memory_modified_in_insn_p(), wi::min_value(), minmax_loc_descriptor(), minmax_replacement(), ipa_param_body_adjustments::modify_cfun_body(), ipa_param_body_adjustments::modify_gimple_stmt(), move_block_to_fn(), move_stmt_r(), native_decode_rtx(), native_encode_int(), native_interpret_int(), ncd_of_cand_and_phis(), ncd_with_phi(), neuter_worker_single(), next_insn(), next_insn_no_annul(), noce_emit_all_but_last(), noce_try_cmove_arith(), num_sign_bit_copies1(), number_of_iterations_cltz(), number_of_iterations_cltz_complement(), oacc_loop_discover_walk(), omp_sese_find_par(), omp_sese_split_blocks(), range_op_handler::op1_op2_relation(), range_op_handler::op1_range(), range_op_handler::op2_range(), op_iter_init(), gphi_iterator::operator*(), phi_analyzer::operator[](), optimize_atomic_bit_test_and(), optimize_atomic_op_fetch_cmp_0(), optimize_memcpy(), optimize_range_tests_diff(), optimize_range_tests_var_bound(), optimize_range_tests_xor(), optimize_spaceship(), dom_opt_dom_walker::optimize_stmt(), optimize_tail_call(), optimize_vector_constructor(), output_constant(), output_constant_pool_2(), output_gimple_stmt(), range_op_handler::overflow_free_p(), uninit_analysis::overlap(), own_thread_p(), parloops_is_simple_reduction(), parloops_is_slp_reduction(), parser::parse_result(), parser::parse_simplify(), operands_scanner::parse_ssa_operands(), patch_jump_insn(), patch_loop_exit(), access_ref::phi(), gphi_iterator::phi(), phi_add_costs(), phi_dynamic_object_size(), phi_incr_cost(), pp_gimple_stmt_1(), predict_loops(), prepare_cmp_insn(), ipa_param_body_adjustments::prepare_debug_expressions(), prepare_use_sites_for(), decision_tree::print_node(), print_pattern(), rtx_writer::print_rtl(), rtx_writer::print_rtx_operand_code_i(), process_bb(), phi_analyzer::process_phi(), promote_mode(), propagate_necessity(), propagate_value(), path_range_query::range_defined_in_block(), fold_using_range::range_of_range_op(), range_of_var_in_loop(), function_reader::read_rtx_operand_i_or_n(), reassociate_bb(), record_edge_info(), record_phi_increments(), jump_threader::record_temporary_equivalences_from_stmts_at_dest(), redirect_branch_edge(), redirect_with_delay_slots_safe_p(), reduce_vector_comparison_to_scalar_comparison(), ref_maybe_used_by_stmt_p(), refactor_eh_r(), reg_set_p(), relax_delay_slots(), remap_gimple_stmt(), remove_unreachable::remove(), remove_unreachable::remove_and_update_globals(), remove_exit_barrier(), remove_exits_and_undefined_stmts(), remove_forwarder_block(), remove_gimple_phi_args(), remove_init_insns(), remove_insn(), remove_redundant_iv_tests(), vect_optimize_slp_pass::remove_redundant_permutations(), replace_block_by(), replace_call_with_call_and_fold(), replace_goto_queue_1(), replace_id(), replace_phi_edge_with_variable(), replace_profitable_candidates(), replace_uses_by(), rest_of_clean_state(), returning_call_p(), rewrite_bittest(), rewrite_reciprocal(), rewrite_use_compare(), scan_function(), scan_omp_1_stmt(), scan_omp_parallel(), scan_omp_simd(), scan_omp_simd_scan(), scan_omp_task(), sccopy_propagate(), set_edge_can_fallthru_flag(), set_unique_reg_note(), set_var_live_on_entry(), vrange_storage::set_vrange(), shorten_branches(), should_duplicate_loop_header_p(), should_warn_for_implicit_fallthrough(), wi::shwi(), sign_mask_for(), simplejump_or_return_p(), simplify_using_ranges::simplify(), simplify_and_const_int_1(), simplify_context::simplify_binary_operation_1(), simplify_builtin_call(), simplify_comparison(), simplify_context::simplify_cond_clz_ctz(), simplify_const_unary_operation(), jump_threader::simplify_control_stmt_condition(), simplify_shift_const_1(), simplify_context::simplify_unary_operation_1(), simplify_using_initial_conditions(), simplify_vector_constructor(), simplify_while_replacing(), ssa_propagation_engine::simulate_stmt(), single_block_loop_p(), single_non_singleton_phi_for_edges(), skip_consecutive_labels(), spaceship_replacement(), split_loop(), split_reg(), sra_modify_function_body(), mode_iterator::start(), statement_sink_location(), stmt_could_throw_p(), stmt_kills_ref_p(), stmt_may_clobber_ref_p_1(), stmt_may_generate_copy(), stmt_semi_invariant_p_1(), store_integral_bit_field(), streamer_read_value_range(), subreg_promoted_mode(), subreg_unpromoted_mode(), synth_mult(), tablejump_p(), dom_opt_dom_walker::test_for_singularity(), thread_prologue_and_epilogue_insns(), tm_memopt_transform_blocks(), top_level_omp_for_in_stmt(), transform_to_exit_first_loop(), transform_to_exit_first_loop_alt(), tree_estimate_loop_size(), tree_estimate_probability_bb(), tree_forwarder_block_p(), tree_transform_and_unroll_loop(), trunc_int_for_mode(), try_merge_delay_insns(), try_optimize_cfg(), try_redirect_by_replacing_jump(), try_simplify_condjump(), try_special_add_to_ops(), try_transform_to_exit_first_loop_alt(), try_unroll_loop_completely(), unpack_ts_fixed_cst_value_fields(), update_gimple_call(), update_profile_after_ch(), use_narrower_mode(), use_narrower_mode_test(), value_replacement(), vect_analyze_data_refs(), vect_analyze_scalar_cycles_1(), vect_analyze_stmt(), vect_bb_slp_scalar_cost(), vect_build_slp_instance(), vect_build_slp_tree_1(), vect_build_slp_tree_2(), vect_create_epilog_for_reduction(), vect_describe_gather_scatter_call(), vect_determine_mask_precision(), vect_find_reusable_accumulator(), vect_get_and_check_slp_defs(), vect_is_simple_reduction(), vect_loop_vectorized_call(), vect_loop_versioning(), vect_recog_rotate_pattern(), vect_schedule_scc(), vect_schedule_slp_node(), vect_slp_check_for_roots(), vect_slp_linearize_chain(), vect_transform_cycle_phi(), vect_transform_reduction(), vect_transform_slp_perm_load_1(), vect_transform_stmt(), vectorizable_bb_reduc_epilogue(), vectorizable_bswap(), vectorizable_early_exit(), vectorizable_induction(), vectorizable_live_operation(), vectorizable_load(), vectorizable_phi(), vectorizable_recurr(), vectorizable_reduction(), vectorizable_shift(), verify_changes(), verify_gimple_in_seq_2(), verify_gimple_stmt(), vn_nary_build_or_lookup_1(), vn_nary_op_insert_stmt(), vn_nary_op_lookup_stmt(), vn_phi_eq(), vn_reference_lookup_3(), walk_gimple_op(), walk_gimple_stmt(), capture_info::walk_match(), warn_implicit_fallthrough_r(), workshare_safe_to_combine_p(), and zero_one_minusone().

◆ dyn_cast()

template<typename T , typename U >
T dyn_cast ( U * p)
inline
A generic checked conversion from a base type U to a derived type T.  See
the discussion above for when to use this function.   

References reinterpret_is_a_helper< T >::cast(), and is_a().

Referenced by add_call_edges_for_seq(), cgraph_node::add_detected_attribute(), add_detected_attribute_1(), add_scope_conflicts_2(), symtab_node::add_to_same_comdat_group(), autofdo::afdo_indirect_call(), autofdo::afdo_propagate_circuit(), autofdo::afdo_vpt_for_early_inline(), analyze_agg_content_value(), analyze_and_compute_bitop_with_inv_effect(), analyze_and_compute_bitwise_induction_effect(), analyze_functions(), loop_cand::analyze_iloop_reduction_var(), loop_cand::analyze_oloop_reduction_var(), dt_node::append_simplify(), asan_expand_poison_ifn(), varpool_node::assemble_aliases(), cgraph_node::assemble_thunks_and_aliases(), attempt_builtin_copysign(), bb_no_side_effects_p(), symtab_node::binds_to_current_def_p(), bitfields_to_lower_p(), ipa_icf::sem_item_optimizer::build_graph(), cgraph_node::call_for_symbol_and_aliases_1(), varpool_node::call_for_symbol_and_aliases_1(), cgraph_node::call_for_symbol_thunks_and_aliases(), can_group_stmts_p(), loop_cand::can_interchange_p(), can_interpret_as_conditional_op_p(), can_refer_decl_in_current_unit_p(), cgraph_node::can_remove_if_no_direct_calls_p(), can_remove_node_now_p(), can_remove_node_now_p_1(), can_strub_internally_p(), can_vectorize_live_stmts(), ipa_ref::cannot_lead_to_return(), strlen_pass::check_and_optimize_stmt(), check_bool_pattern(), check_callers(), check_forbidden_calls(), symtab_node::check_ifunc_callee_symtab_nodes(), check_omp_nesting_restrictions(), check_reduction_path(), check_redundant_cond_expr(), check_retval_uses(), check_scan_store(), cleanup_dead_labels(), cleanup_empty_eh_unsplit(), clear_bytes_written_by(), symtab_node::clear_stmts_in_references(), commutate(), commutative_op(), compatible_complex_nodes_p(), path_range_query::compute_exit_dependencies(), compute_ltrans_boundary(), compute_points_to_sets(), cond_removal_in_builtin_zero_pattern(), fold_using_range::condexpr_adjust(), constant_after_peeling(), contains_id(), convert_mult_to_highpart(), convert_nl_goto_receiver(), copy_bb(), create_dispatcher_calls(), create_references(), create_trace_edges(), decompose_param_expr(), def_downwards_move_range(), def_upwards_move_range(), delete_insn(), delete_related_insns(), determine_max_movement(), discover_nonconstant_array_refs(), symtab_node::dissolve_same_comdat_group_list(), dse_classify_store(), dse_optimize_call(), cgraph_node::dump(), symtab_node::dump(), symtab_node::dump_graphviz(), dump_ic_profile(), edge_forwards_cmp_to_conditional_jump_through_empty_bb_p(), eliminate_dom_walker::eliminate_avail(), eliminate_dom_walker::eliminate_cleanup(), eliminate_dom_walker::eliminate_insert(), eliminate_redundant_computations(), eliminate_dom_walker::eliminate_stmt(), empty_stmt_p(), enqueue_references(), ipa_icf::sem_variable::equals(), ipa_icf::sem_function::equals_private(), ipa_icf::sem_function::equals_wpa(), estimate_numbers_of_iterations(), evaluate_control_stmt_using_entry_checks(), execute_early_expand_coro_ifns(), execute_fixup_cfg(), execute_omp_device_lower(), execute_ranger_vrp(), exist_non_indexing_operands_for_use_p(), expand_block_edges(), expand_call_inline(), expand_gimple_basic_block(), expand_vector_condition(), expand_vector_operations_1(), expr_expected_value_1(), expr_hash_elt::expr_hash_elt(), factor_out_conditional_operation(), infinite_recursion_diagnostic::fedge_uses_conjured_svalue_p(), fill_eager_delay_slots(), fill_simple_delay_slots(), final_scan_insn_1(), find_address_like_use(), find_conditions(), find_deriving_biv_for_expr(), find_explicit_erroneous_behavior(), find_func_aliases(), find_func_clobbers(), find_or_create_guard_phi(), back_threader::find_paths_to_names(), loop_cand::find_reduction_by_stmt(), find_return_bb(), find_retval(), find_uninit_use(), symbol_table::first_defined_function(), symbol_table::first_defined_variable(), symbol_table::first_function(), symbol_table::first_function_with_gimple_body(), first_hazard_after(), symbol_table::first_static_initializer(), symbol_table::first_variable(), fix_up_fall_thru_edges(), fixup_debug_uses(), ipa_icf::sem_item_optimizer::fixup_points_to_sets(), fixup_reorder_chain(), follow_copies_to_constant(), scev_dfs::follow_ssa_edge_expr(), function_and_variable_visibility(), pair_fusion_bb_info::fuse_pair(), dt_simplify::gen_1(), dt_operand::gen_generic_expr(), dt_operand::gen_gimple_expr(), dt_node::gen_kids(), dt_node::gen_kids_1(), expr::gen_transform(), generate_loops_for_partition(), cgraph_node::get(), varpool_node::get(), cgraph_node::get_alias_target(), varpool_node::get_alias_target(), get_attr_length_1(), cgraph_node::get_availability(), symtab_node::get_availability(), get_code(), scalar_cond_masked_key::get_cond_ops_from_tree(), ana::supernode::get_final_call(), cgraph_node::get_for_asmname(), varpool_node::get_for_asmname(), get_group_load_store_type(), get_last_nonnote_insn(), get_load_store_type(), ipa_icf::sem_function::get_node(), ipa_icf::sem_variable::get_node(), get_operator(), symtab_node::get_partitioning_class(), get_range_strlen_dynamic(), get_reassociation_width(), get_upper_bound_based_on_builtin_expr_with_prob(), get_value_locus_in_path(), get_ws_args_for(), gimple_arg(), gimple_arg_ptr(), gimple_bitwise_inverted_equal_p(), gimple_block_label(), gimple_call_combined_fn(), gimple_can_merge_blocks_p(), gimple_divmod_fixed_value_transform(), gimple_expand_vec_cond_expr(), gimple_expand_vec_set_extract_expr(), gimple_expr_code(), gimple_has_lhs(), gimple_merge_blocks(), gimple_mod_pow2_value_transform(), gimple_mod_subtract_transform(), gimple_nop_conversion_p(), gimple_num_args(), gimple_stringops_transform(), gimple_stringops_values_to_profile(), gimple_use_ops(), gimple_vdef(), gimple_vdef_op(), gimple_vdef_ptr(), gimple_verify_flow_info(), gimple_vuse(), gimple_vuse_op(), gimple_vuse_ptr(), group_case_labels_stmt(), growth_positive_p(), gsi_insert_finally_seq_after_call(), handle_return_addr_local_phi_arg(), has_opt(), have_optimized_refs(), ifcvt_can_hoist(), imm_dom_path_with_freeing_call(), symtab_node::in_same_comdat_group_p(), infer_nonnull_range_by_attribute(), ipa_icf::sem_function::init(), predicate::init_from_control_deps(), inline_read_section(), input_cgraph_1(), input_cgraph_opt_section(), input_edge(), input_gimple_stmt(), input_node(), input_refs(), decision_tree::insert_operand(), vec_info::insert_seq_on_entry(), symbol_table::insert_to_assembler_name_hash(), instantiate_scev_name(), vect_optimize_slp_pass::internal_node_cost(), ipa_comdats(), ipa_devirt(), ipa_make_edge_direct_to_target(), ipa_merge_profiles(), ipa_profile(), ipa_profile_read_summary_section(), ipa_prop_read_section(), ipa_pta_execute(), ipa_reference_read_optimization_summary(), ipa_reference_write_optimization_summary(), ipa_reverse_postorder(), ipa_simd_modify_function_body(), ipa_single_use(), ipa_tm_execute(), ipcp_write_transformation_summaries(), is_copysign_call_with_1(), is_feasible_trace(), is_maybe_undefined(), is_simple_and_all_uses_invariant(), label_rtx_for_bb(), lane_reducing_stmt_p(), latest_hazard_before(), link_use_stmts_after(), load_or_store_of_ptr_parameter(), lower_cond(), lower_for(), lower_opt(), lsei_cgraph_node(), lsei_varpool_node(), lto_output(), lto_output_ref(), lto_read_body_or_constructor(), make_edges(), make_tm_uninst(), malloc_candidate_p(), malloc_candidate_p_1(), mark_all_reaching_defs_necessary_1(), mark_constants(), mark_functions_to_output(), mark_local_labels_stmt(), match_single_bit_test(), may_propagate_copy_into_stmt(), maybe_dead_abnormal_edge_p(), maybe_set_vectorized_backedge_value(), maybe_warn_operand(), ipa_icf::sem_function::merge(), move_block_to_fn(), move_early_exit_stmts(), nearest_common_dominator_of_uses(), symbol_table::next_defined_function(), symbol_table::next_defined_variable(), symbol_table::next_function(), symbol_table::next_function_with_gimple_body(), symbol_table::next_static_initializer(), symbol_table::next_variable(), symtab_node::noninterposable_alias(), omp_lto_input_declare_variant_alt(), operator==(), optimize_pow_to_exp(), optimize_recip_sqrt(), dom_opt_dom_walker::optimize_stmt(), optimize_unreachable(), output_cgraph_opt_summary(), output_refs(), output_symtab(), symtab_node::output_to_lto_symbol_table_p(), ovce_extract_ops(), parloops_is_simple_reduction(), parser::parse_expr(), parser::parse_for(), function_reader::parse_insn(), ipa_icf_gimple::func_checker::parse_labels(), parser::parse_op(), parser::parse_operation(), parser::parse_operator_list(), parser::parse_pattern(), possible_inline_candidate_p(), possible_vector_mask_operation_p(), predicate_statements(), predict_extra_loop_exits(), gimple_ranger::prefill_stmt_dependencies(), previous_insn(), print_operand(), process_references(), process_references(), propagate_comdat_group(), propagate_necessity(), propagate_single_user(), propagate_tree_value_into_stmt(), uninit_analysis::prune_phi_opnds(), pure_const_read_summary(), _slp_tree::push_vec_def(), read_replacements_section(), ipa_icf::sem_item_optimizer::read_section(), symtab_node::real_symbol_p(), cgraph_edge::rebuild_edges(), ipa_icf::redirect_all_callers(), cgraph_edge::redirect_call_stmt_to_callee(), redundant_insn(), reemit_insn_block_notes(), ref_maybe_used_by_stmt_p(), refactor_eh_r(), referenced_from_vtable_p(), symtab_node::referred_to_p(), relax_delay_slots(), remap_gimple_stmt(), symtab_node::remove(), remove_bb(), remove_forwarder_block(), remove_forwarder_block_with_phi(), symbol_table::remove_unreachable_nodes(), symbol_table::remove_unreferenced_decls(), replace_id(), replace_locals_stmt(), replace_stmt_with_simplification(), symtab_node::reset(), reset_edge_caches(), result_of_phi(), rewrite_bittest(), rewrite_update_phi_arguments(), safe_dyn_cast(), sanopt_optimize_walker(), scan_trace(), cgraph_node::set_const_flag(), set_const_flag_1(), cgraph_node::set_malloc_flag(), set_malloc_flag_1(), cgraph_node::set_noreturn_flag(), set_noreturn_flag_1(), cgraph_node::set_nothrow_flag(), set_nothrow_flag_1(), shorten_branches(), simd_clone_call_p(), hybrid_jt_simplifier::simplify(), simplify_loop_version(), sm_seq_valid_bb(), split_address_to_core_and_offset(), split_function(), def_walker< reverse >::start_use_chain(), stmt_can_terminate_bb_p(), stmt_in_inner_loop_p(), stmt_may_terminate_function_p(), stmt_starts_bb_p(), supportable_widening_operation(), ipa_icf::symbol_compare_collection::symbol_compare_collection(), ter_is_replaceable_p(), tm_region_init(), tree_predict_by_opcode(), tree_profiling(), try_vectorize_loop_1(), ubsan_create_edge(), cgraph_node::ultimate_alias_target(), varpool_node::ultimate_alias_target(), symbol_table::unlink_from_assembler_name_hash(), symtab_node::unregister(), unsplit_eh(), update_caller_keys(), ipa_icf::sem_item::update_hash_by_addr_refs(), ipa_icf::sem_item::update_hash_by_local_refs(), vect_analyze_data_ref_access(), vect_analyze_data_refs(), vect_analyze_group_access_1(), vect_analyze_slp(), vect_analyze_stmt(), vect_build_slp_tree_1(), vect_build_slp_tree_2(), vect_check_gather_scatter(), vect_check_store_rhs(), vect_comparison_type(), vect_compute_data_ref_alignment(), vect_create_addr_base_for_vector_ref(), vect_create_data_ref_ptr(), vect_determine_mask_precision(), vect_determine_min_output_precision_1(), vect_determine_stmt_precisions(), vect_dr_behavior(), vect_embedded_comparison_type(), vect_find_stmt_data_reference(), vect_get_and_check_slp_defs(), vect_get_data_access_cost(), vect_get_data_ptr_increment(), vect_get_external_def_edge(), vect_get_load_store_mask(), vect_get_loop_variant_data_ptr_increment(), vect_get_num_copies(), vect_get_operand_map(), vect_get_smallest_scalar_type(), vect_get_store_rhs(), vect_get_vec_defs_for_operand(), vect_is_emulated_mixed_dot_prod(), vect_is_extending_load(), vect_is_integer_truncation(), vect_is_simple_reduction(), vect_is_simple_use(), vect_look_through_possible_promotion(), vect_mark_stmts_to_be_vectorized(), vect_nop_conversion_p(), vect_peeling_hash_get_lowest_cost(), vect_reassociating_reduction_p(), vect_recog_abd_pattern(), vect_recog_absolute_difference(), vect_recog_average_pattern(), vect_recog_bit_insert_pattern(), vect_recog_bitfield_ref_pattern(), vect_recog_cast_forwprop_pattern(), vect_recog_cond_expr_convert_pattern(), vect_recog_gather_scatter_pattern(), vect_recog_gcond_pattern(), vect_recog_mulhs_pattern(), vect_recog_over_widening_pattern(), vect_recog_popcount_clz_ctz_ffs_pattern(), vect_recog_sad_pattern(), vect_recog_vector_vector_shift_pattern(), vect_recog_widen_abd_pattern(), vect_record_base_alignments(), vect_reduc_type(), vect_remove_slp_scalar_calls(), vect_schedule_slp_node(), vect_setup_realignment(), vect_shift_permute_load_chain(), vect_slp_analyze_operations(), vect_slp_check_for_roots(), vect_slp_is_lane_insert(), vect_slp_region(), vect_supportable_dr_alignment(), vect_transform_loop(), vectorizable_assignment(), vectorizable_bswap(), vectorizable_call(), vectorizable_comparison(), vectorizable_comparison_1(), vectorizable_condition(), vectorizable_conversion(), vectorizable_early_exit(), vectorizable_induction(), vectorizable_live_operation(), vectorizable_load(), vectorizable_nonlinear_induction(), vectorizable_operation(), vectorizable_scan_store(), vectorizable_shift(), vectorizable_simd_clone_call(), vectorizable_slp_permutation_1(), vectorizable_store(), symtab_node::verify(), symtab_node::verify_base(), verify_non_ssa_vars(), visit_nary_op(), visit_stmt(), walk_captures(), capture_info::walk_match(), capture_info::walk_result(), walk_stmt_load_store_addr_ops(), warn_uninit(), warn_uninitialized_phi(), warn_uninitialized_vars(), and cgraph_node::will_be_removed_from_program_if_no_direct_calls_p().

◆ is_a()

template<typename T , typename U >
bool is_a ( U * p)
inline
Note that we deliberately do not define the 'test' member template.  Not
doing so will result in a build-time error for type relationships that have
not been defined, rather than a run-time error.  See the discussion above
for when to define this member.   
The public interface.   
A generic test for a type relationship.  See the discussion above for when
to use this function.  The question answered is "Is type T a derived type of
type U?".   

References is_a_helper< T >::test().

Referenced by symtab_node::address_can_be_compared_p(), ipa_ref::address_matters_p(), adjust_mems(), rtx_vector_builder::allow_steps_p(), always_throwing_noreturn_call_p(), analyze_function(), analyze_iv_to_split_insn(), as_a(), asan_expand_poison_ifn(), assume_query::assume_query(), bitwise_mode_for_mode(), build_type_inheritance_graph(), gori_map::calculate_gori(), assume_query::calculate_stmt(), can_mult_highpart_p(), can_replace_by_local_alias_in_vtable(), can_vec_mask_load_store_p(), canonicalize_address_mult(), canonicalize_condition(), cfun_returns(), change_zero_ext(), check_loop_closed_ssa_def(), assume_query::check_taken_edge(), combine_simplify_rtx(), comdat_can_be_unshared_p_1(), ipa_icf::sem_item::compare_referenced_symbol_properties(), ipa_icf::sem_item::compare_symbol_references(), compute_ltrans_boundary(), gori_compute::compute_operand_range(), constant_after_peeling(), convert_modes(), convert_move(), copy_bb(), copy_reg_eh_region_note_backward(), copy_reg_eh_region_note_forward(), symtab_node::create_reference(), create_references(), cse_insn(), cselib_record_sets(), determine_max_movement(), dump_gimple_try(), dyn_cast(), gimple_outgoing_range::edge_range_p(), enqueue_references(), expand_abs_nojump(), expand_compound_operation(), expand_debug_expr(), expand_field_assignment(), expand_fix(), expand_float(), expand_unop(), expression_expensive_p(), ext_dce_process_sets(), extended_count(), extract_bit_field(), find_base_term(), find_base_value(), find_deps_in_bb_for_stmt(), find_reloads(), find_split_point(), find_widening_optab_handler_and_mode(), symtab_node::fixup_same_cpp_alias_visibility(), flip_storage_order(), fold_using_range::fold_stmt(), force_const_mem(), force_expr_to_var_cost(), force_to_mode(), forward_propagate_subreg(), decision_tree::gen(), dt_simplify::gen(), dt_simplify::gen_1(), gen_extend_conv_libfunc(), gen_lowpart_common(), gen_lowpart_general(), gen_memset_value_from_prev(), capture::gen_transform(), expr::gen_transform(), gen_trunc_conv_libfunc(), generate_summary(), symtab_node::get_availability(), get_biv_step_1(), ranger_cache::get_global_range(), get_operand_name(), get_operand_type(), get_vectype_for_scalar_type(), gimple_infer_range::gimple_infer_range(), gimple_outgoing_range_stmt_p(), gimple_range_ssa_names(), gori_name_on_edge(), gori_stmt_info::gori_stmt_info(), phi_analyzer::group(), handle_alias_pairs(), hardcfr_sibcall_search_block(), hardcfr_sibcall_search_preds(), ipa_icf::sem_item::hash_referenced_symbol_properties(), if_then_else_cond(), immed_double_const(), info_for_reduction(), init_expmed_one_mode(), input_cgraph_1(), input_ref(), rt_bb_visited::insert_exit_check_in_block(), decision_tree::insert_operand(), symbol_table::insert_to_assembler_name_hash(), ipa_comdats(), ipa_single_use(), vect_optimize_slp_pass::is_cfg_latch_edge(), iv_analyze_def(), iv_analyze_expr(), iv_analyze_op(), iv_number_of_iterations(), load_extend_op(), loc_descriptor(), loc_list_from_tree_1(), lower_cond(), lower_for(), lra_constraint_offset(), lsei_next_function_in_partition(), lsei_next_variable_in_partition(), lsei_start_function_in_partition(), lsei_start_variable_in_partition(), make_blocks(), make_compound_operation(), make_compound_operation_int(), make_field_assignment(), malloc_candidate_p_1(), tree_loop_interchange::map_inductions_to_loop(), mark_ssa_maybe_undefs(), gori_compute::may_recompute_p(), gimple_range_op_handler::maybe_builtin_call(), maybe_optimize_mod_cmp(), maybe_optimize_pow2p_mod_cmp(), mem_loc_descriptor(), minmax_loc_descriptor(), move2add_note_store(), move2add_valid_value_p(), native_decode_rtx(), native_encode_rtx(), vec_info::new_stmt_vec_info(), noce_try_bitop(), nonzero_bits(), nonzero_bits1(), num_sign_bit_copies(), num_sign_bit_copies1(), omp_discover_declare_target_var_r(), operands_match_p(), phi_analyzer::operator[](), symtab_node::output_to_lto_symbol_table_p(), parloops_is_simple_reduction(), parser::parse_simplify(), plausible_type_for_simd_clone(), possible_vector_mask_operation_p(), gimple_ranger::prefill_name(), gimple_ranger::prefill_stmt_dependencies(), prepare_call_arguments(), prepare_libcall_arg(), decision_tree::print_node(), print_operand(), rtx_writer::print_rtx(), phi_analyzer::process_phi(), propagate_value(), push_reload(), fold_using_range::range_of_range_op(), gimple_ranger::range_of_stmt(), ipa_icf::sem_item_optimizer::read_section(), symtab_node::real_symbol_p(), relation_oracle::record(), range_def_chain::register_dependency(), relax_delay_slots(), reload_cse_move2add(), vect_optimize_slp_pass::remove_redundant_permutations(), symtab_node::resolve_alias(), resolve_shift_zext(), returning_call_p(), safe_as_a(), scompare_loc_descriptor(), symtab_node::set_init_priority(), set_nonzero_bits_and_sign_copies(), sign_extend_short_imm(), simple_dce_from_worklist(), simplify_context::simplify_binary_operation_1(), simplify_compare_const(), simplify_comparison(), simplify_const_binary_operation(), simplify_const_relational_operation(), simplify_const_unary_operation(), simplify_if_then_else(), simplify_logical(), simplify_context::simplify_relational_operation_1(), simplify_context::simplify_subreg(), simplify_context::simplify_ternary_operation(), simplify_context::simplify_truncation(), simplify_context::simplify_unary_operation_1(), simplify_while_replacing(), op_by_pieces_d::smallest_fixed_size_mode_for_size(), ssa_name_any_use_dominates_bb_p(), store_bit_field(), store_integral_bit_field(), gimple_range_op_handler::supported_p(), ipa_icf::symbol_compare_collection::symbol_compare_collection(), try_combine(), ucompare_loc_descriptor(), undistribute_bitref_for_vector(), symtab_node::unregister(), ipa_icf::sem_item::update_hash_by_addr_refs(), vect_analyze_data_ref_accesses(), vect_analyze_data_refs(), vect_analyze_slp_instance(), vect_bb_slp_scalar_cost(), vect_build_slp_instance(), vect_build_slp_tree_1(), vect_build_slp_tree_2(), vect_create_constant_vectors(), vect_determine_mask_precision(), vect_get_and_check_slp_defs(), vect_get_vector_types_for_stmt(), vect_init_pattern_stmt(), vect_is_simple_reduction(), vect_mark_pattern_stmts(), vect_phi_first_order_recurrence_p(), vect_recog_cast_forwprop_pattern(), vect_recog_rotate_pattern(), vect_record_max_nunits(), vect_schedule_scc(), vect_schedule_slp(), vect_schedule_slp_node(), vect_slp_analyze_operations(), vect_slp_convert_to_external(), vectorizable_early_exit(), vectorizable_lc_phi(), vectorizable_live_operation(), vectorizable_phi(), vectorizable_recurr(), vectorizable_reduction(), vectorized_internal_fn_supported_p(), symtab_node::verify_base(), visit_reference_op_call(), capture_info::walk_c_expr(), capture_info::walk_match(), capture_info::walk_result(), widen_operand(), and widest_fixed_size_mode_for_size().

◆ safe_as_a()

template<typename T , typename U >
T safe_as_a ( U * p)
inline

◆ safe_dyn_cast()

template<typename T , typename U >
T safe_dyn_cast ( U * p)
inline

◆ safe_is_a()

template<typename T , typename U >
bool safe_is_a ( U * p)
inline