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

Go to the source code of this file.

Functions

void warning (const char *,...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_COLD
 
void error (const char *,...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_COLD
 
void fatal (const char *,...) ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF_1 ATTRIBUTE_COLD
 
void internal_error (const char *,...) ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF_1 ATTRIBUTE_COLD
 
const chartrim_filename (const char *)
 

Variables

int have_error
 
const charprogname
 

Function Documentation

◆ error()

void error ( const char * format,
... )
extern
A hard error: the code is definitely ill-formed, and an object file
will not be produced.   
Print an error message - we keep going but the output is unusable.   

References ap, diagnostic_impl(), fputc(), ggc_alloc(), have_error, input_location, line_table, NULL, progname, and vfprintf().

Referenced by _fatal_insn(), add_excls(), add_new_plugin(), add_predicate(), add_prefix_map(), add_presence_absence(), align_variable(), allocate_dynamic_stack_space(), asm_clobber_reg_is_valid(), assemble_alias(), assemble_noswitch_variable(), assemble_variable(), assign_temp(), build_array_type_1(), build_function_type(), check_automata_insn_issues(), check_automaton_usage(), check_foffload_target_names(), check_loops_in_regexps(), check_name(), check_offload_target_name(), check_operand_nalternatives(), check_regexp_units_distribution(), check_unique_operand_names(), check_usage(), compare_files(), complain_wrong_lang(), complete_mode(), complex_class(), compute_branch_probabilities(), compute_value_histograms(), control_warning_option(), convert_to_complex_1(), convert_to_fixed(), convert_to_integer_1(), convert_to_pointer_1(), convert_to_real_1(), convert_to_vector(), coverage_init(), dbg_cnt_set_limit_by_index(), dbg_cnt_set_limit_by_name(), decl_attributes(), declare_weak(), decode_cmdline_option(), def_target_insn(), default_expand_builtin_saveregs(), diagnose_sb_0(), do_assemble_symver(), do_link(), do_spec_1(), driver::do_spec_on_infiles(), driver_wrong_lang_callback(), dump_gcov_file(), dump_go_spec_init(), dump_open(), gcc::dump_manager::dump_switch_p(), enable_disable_pass(), end_going_arg(), error_unavailable_use(), execute_cleanup_cfg_post_optimizing(), expand_builtin(), expand_builtin___clear_cache(), expand_builtin_atomic_always_lock_free(), expand_builtin_atomic_is_lock_free(), expand_builtin_eh_return_data_regno(), expand_builtin_frame_address(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_object_size(), expand_builtin_prefetch(), expand_builtin_set_thread_pointer(), expand_builtin_thread_pointer(), expand_call_inline(), expand_eh_return(), expand_expr_real_1(), expand_one_var(), expand_thunk(), files_equal_p(), find_partition_fixes(), fix_register(), fold_builtin_next_arg(), for_each_matching_insn(), get_section(), gimple_verify_flow_info(), gimplify_adjust_omp_clauses_1(), gimplify_asm_expr(), gimplify_call_expr(), gimplify_scan_omp_clauses(), globalize_reg(), go_finish(), handle_alias_pairs(), handle_common_deferred_options(), handle_ignored_attributes_option(), function_reader::handle_insn_uids(), function_reader::handle_unknown_directive(), driver::handle_unrecognized_options(), input_offload_tables(), insert_bypass(), ira_setup_eliminable_regset(), layout_type(), lookup_compiler(), lra_split_hard_reg_for(), main(), make_complex_modes(), make_decl_rtl(), make_int_n(), make_partial_integer_mode(), make_vector_bool_mode(), make_vector_mode(), make_vector_modes(), mark_mode_tests(), mark_weak(), driver::maybe_run_linker(), merge_weak(), new_adjust(), new_mode(), oacc_default_clause(), omp_default_clause(), omp_is_private(), omp_notice_threadprivate_variable(), omp_notice_variable(), output_constant(), output_constructor_bitfield(), parse_and_check_patch_area(), parse_edge_flag_token(), function_reader::parse_enum_value(), parse_input_constraint(), parse_output_constraint(), parse_plugin_arg_opt(), parse_profile_filter(), parse_zero_call_used_regs_options(), position_pass(), print_help(), process_decls(), process_excls(), process_presence_absence_names(), process_presence_absence_patterns(), process_regexp(), read_count_file(), read_counts_file(), read_input_list(), autofdo::read_profile(), register_callback(), register_plugin_info(), replace_duplicating_operands_in_pattern(), reset_float_format(), symtab_node::resolve_alias(), resolve_operand_name_1(), rest_of_clean_state(), rtl_verify_bb_insn_chain(), rtl_verify_bb_insns(), rtl_verify_bb_pointers(), rtl_verify_edges(), rtl_verify_fallthru(), driver::set_up_specs(), spill_failure(), tree_inlinable_function_p(), update_ssa(), valid_constant_size_p(), vector_class(), verify_address(), symtab_node::verify_base(), cgraph_edge::verify_count(), verify_def(), verify_dominators(), verify_eh_dispatch_edge(), verify_eh_edges(), verify_eh_throw_stmt_node(), verify_eh_tree(), verify_expr_location_1(), verify_flow_info(), verify_gimple_assign(), verify_gimple_assign_binary(), verify_gimple_assign_single(), verify_gimple_assign_ternary(), verify_gimple_assign_unary(), verify_gimple_call(), verify_gimple_comparison(), verify_gimple_cond(), verify_gimple_goto(), verify_gimple_in_cfg(), verify_gimple_label(), verify_gimple_phi(), verify_gimple_return(), verify_gimple_switch(), verify_histograms(), verify_hot_cold_block_grouping(), verify_imm_links(), verify_location(), verify_loop_structure(), cgraph_node::verify_node(), verify_opaque_type(), verify_phi_args(), verify_rtx_sharing(), verify_speculative_call(), verify_ssa(), verify_ssa_name(), operands_scanner::verify_ssa_operands(), symtab_node::verify_symtab_nodes(), verify_type(), verify_type_variant(), verify_types_in_gimple_reference(), verify_use(), verify_vssa(), visit_hist(), write_insn_constraint_len(), and write_tm_constrs_h().

◆ fatal()

◆ internal_error()

void internal_error ( const char * format,
... )
extern
An internal consistency check has failed.  We make no attempt to
continue.   
Similar, but say we got an internal error.   

References ap, diagnostic_impl(), FATAL_EXIT_CODE, fputc(), gcc_unreachable, ggc_alloc(), input_location, line_table, NULL, progname, and vfprintf().

Referenced by block_ends_with_call_p(), block_ends_with_condjump_p(), bp_unpack_string(), can_duplicate_block_p(), can_merge_blocks_p(), can_remove_branch_p(), opt_pass::clone(), symbol_table::compile(), convert_gimple_call(), convert_nonlocal_reference_op(), crash_signal(), create_basic_block_1(), delete_basic_block(), DFS::DFS(), dump_bb_for_graph(), duplicate_block(), emit_mode_adjustments(), expand_asm_stmt(), fail_abnormal_edge_coalesce(), fancy_abort(), fancy_abort(), flow_call_edges_add(), force_nonfallthru(), get_section(), gimplify_expr(), init_ggc(), input_cgraph_1(), input_edge(), input_gimple_stmt(), input_node(), lra_assign(), lra_constraints(), lto_compression_zlib(), lto_get_section_name(), lto_input_mode_table(), lto_tag_check(), lto_tag_check_range(), lto_tag_check_set(), lto_uncompression_zlib(), lto_write_tree(), make_forwarder_block(), mark_functions_to_output(), merge_blocks(), move_block_after(), omp_get_attachment(), omp_group_base(), omp_tsort_mapping_groups_1(), output_operand_lossage(), predict_edge(), predicted_by_p(), print_specific_help(), redirect_edge_and_branch(), redirect_edge_and_branch_force(), rewrite_trees(), rtl_verify_bb_layout(), opt_pass::set_pass_param(), split_block_1(), split_edge(), streamer_read_string(), string_for_index(), update_ssa(), validate_value_data(), attr_fnspec::verify(), symtab_node::verify(), verify_constructor_flags(), verify_eh_tree(), verify_flow_info(), verify_gimple_in_cfg(), verify_gimple_in_seq(), verify_histograms(), verify_marked_backedges(), cgraph_node::verify_node(), verify_rtx_sharing(), verify_ssa(), symtab_node::verify_symtab_nodes(), verify_type(), and visit_loops_in_gang_single_region().

◆ trim_filename()

const char * trim_filename ( const char * name)
extern
Given a partial pathname as input, return another pathname that
shares no directory elements with the pathname of __FILE__.  This
is used by fancy_abort() to print `internal compiler error in expr.cc'
instead of `internal compiler error in ../../GCC/gcc/expr.cc'.   
Given a partial pathname as input, return another pathname that
shares no directory elements with the pathname of __FILE__.  This
is used by fancy_abort() to print `Internal compiler error in expr.cc'
instead of `Internal compiler error in ../../GCC/gcc/expr.cc'.  This
version is meant to be used for the gen* programs and therefor need not
handle subdirectories.   

References ggc_alloc(), and this_file.

Referenced by fancy_abort().

◆ warning()

void warning ( const char * format,
... )
extern
Basic error reporting routines.
   Copyright (C) 1999-2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
warning, error, and fatal.  These definitions are suitable for use
in the generator programs; eventually we would like to use them in
cc1 too, but that's a longer term project.

N.B. We cannot presently use ATTRIBUTE_PRINTF with these functions,
because they can be extended with additional format specifiers which
GCC does not know about.   
Print a warning message - output produced, but there may be problems.   

References ap, fputc(), ggc_alloc(), progname, and vfprintf().

Variable Documentation

◆ have_error

int have_error
extern
Starts out 0, set to 1 if error is called.   
MD reader for GCC.
   Copyright (C) 1987-2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
This file is compiled twice: once for the generator programs
once for the compiler.   
Minimal reimplementation of errors.cc for use by RTL frontend
within cc1.   

Referenced by check_all_description(), error(), error_at(), expand_automata(), gen_mnemonic_attr(), init_rtx_reader_args_cb(), main(), main(), main(), process_define_cond_exec(), md_reader::read_file(), md_reader::read_file_fragment(), validate_optab_operands(), VEC_safe_set_locstr(), and write_automata().

◆ progname

const char* progname
extern
Name of program invoked, sans directories.   
Basic error reporting routines.
   Copyright (C) 1999-2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
warning, error, and fatal.  These definitions are suitable for use
in the generator programs; the compiler has a more elaborate suite
of diagnostic printers, found in diagnostic.cc.   
Set this to argv[0] at the beginning of main.   

Referenced by error(), fatal(), internal_error(), and warning().