aboutsummaryrefslogtreecommitdiff
path: root/gdb/complaints.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-05-16 22:54:44 -0600
committerTom Tromey <tom@tromey.com>2018-05-23 09:17:01 -0600
commitb98664d3862579c5a0d23901b1e2fc1f595f39ff (patch)
tree7659c15ce611083c429716e8e71bd744f3b6163a /gdb/complaints.c
parent4e9668d0d1ddad73af7c20a92a00704fbea2a8d9 (diff)
downloadfsf-binutils-gdb-b98664d3862579c5a0d23901b1e2fc1f595f39ff.zip
fsf-binutils-gdb-b98664d3862579c5a0d23901b1e2fc1f595f39ff.tar.gz
fsf-binutils-gdb-b98664d3862579c5a0d23901b1e2fc1f595f39ff.tar.bz2
Remove symfile_complaints
The complaint system seems to allow for multiple different complaint topics. However, in practice only symfile_complaints has ever been defined. Seeing that complaints.c dates to 1992, and that no new complaints have been added in the intervening years, I think it is reasonable to admit that complaints are specifically related to debuginfo reading. This patch removes symfile_complaints and updates all the callers. Some of these spots should perhaps be calls to warning instead, but I did not make that change. gdb/ChangeLog 2018-05-23 Tom Tromey <tom@tromey.com> * complaints.c (symfile_complaints): Remove. (complaint_internal): Remove "complaints" parameter. (clear_complaints, vcomplaint): Remove "c" parameter. (get_complaints): Remove. * dwarf2read.c (dwarf2_statement_list_fits_in_line_number_section_complaint) (dwarf2_debug_line_missing_file_complaint) (dwarf2_debug_line_missing_end_sequence_complaint) (dwarf2_complex_location_expr_complaint) (dwarf2_const_value_length_mismatch_complaint) (dwarf2_section_buffer_overflow_complaint) (dwarf2_macro_malformed_definition_complaint) (dwarf2_invalid_attrib_class_complaint) (create_addrmap_from_index, dw2_symtab_iter_next) (dw2_expand_marked_cus) (dw2_debug_names_iterator::find_vec_in_debug_names) (dw2_debug_names_iterator::next, dw2_debug_names_iterator::next) (create_debug_type_hash_table, init_cutu_and_read_dies) (partial_die_parent_scope, add_partial_enumeration) (skip_one_die, fixup_go_packaging, quirk_rust_enum, process_die) (dwarf2_compute_name, dwarf2_physname, read_namespace_alias) (read_import_statement, read_file_scope, create_dwo_cu_reader) (create_cus_hash_table, create_dwp_hash_table) (inherit_abstract_dies, read_func_scope, read_call_site_scope) (dwarf2_rnglists_process, dwarf2_ranges_process) (dwarf2_add_type_defn, dwarf2_attach_fields_to_type) (dwarf2_add_member_fn, get_alignment, maybe_set_alignment) (handle_struct_member_die, process_structure_scope) (read_array_type, read_common_block, read_module_type) (read_tag_pointer_type, read_typedef, read_base_type) (read_subrange_type, load_partial_dies, partial_die_info::read) (partial_die_info::read, partial_die_info::read) (partial_die_info::read, read_checked_initial_length_and_offset) (dwarf2_string_attr, read_formatted_entries) (dwarf_decode_line_header) (lnp_state_machine::check_line_address, dwarf_decode_lines_1) (new_symbol, dwarf2_const_value_attr, lookup_die_type) (read_type_die_1, determine_prefix, dwarf2_get_ref_die_offset) (dwarf2_get_attr_constant_value, dwarf2_fetch_constant_bytes) (get_signatured_type, get_DW_AT_signature_type) (decode_locdesc, file_file_name, consume_improper_spaces) (skip_form_bytes, skip_unknown_opcode, dwarf_parse_macro_header) (dwarf_decode_macro_bytes, dwarf_decode_macros) (dwarf2_symbol_mark_computed, set_die_type) (read_attribute_value): Update. * stap-probe.c (handle_stap_probe, get_stap_base_address): Update. * dbxread.c (unknown_symtype_complaint) (lbrac_mismatch_complaint, repeated_header_complaint) (set_namestring, function_outside_compilation_unit_complaint) (read_dbx_symtab, process_one_symbol): Update. * gdbtypes.c (stub_noname_complaint): Update. * windows-nat.c (handle_unload_dll): Update. * coffread.c (coff_symtab_read, enter_linenos, decode_type) (decode_base_type): Update. * xcoffread.c (bf_notfound_complaint, ef_complaint) (eb_complaint, record_include_begin, record_include_end) (enter_line_range, xcoff_next_symbol_text, read_xcoff_symtab) (process_xcoff_symbol, read_symbol) (function_outside_compilation_unit_complaint) (scan_xcoff_symtab): Update. * machoread.c (macho_symtab_read, macho_add_oso_symfile): Update. * buildsym.c (finish_block_internal, make_blockvector) (end_symtab_get_static_block, augment_type_symtab): Update. * dtrace-probe.c (dtrace_process_dof) (dtrace_static_probe_ops::get_probes): Update. * complaints.h (struct complaint): Don't declare. (symfile_complaints): Remove. (complaint_internal): Remove "complaints" parameter. (complaint): Likewise. (clear_complaints): Likewise. * symfile.c (syms_from_objfile_1, finish_new_objfile) (reread_symbols): Update. * dwarf2-frame.c (dwarf2_restore_rule, execute_cfa_program) (dwarf2_frame_cache, decode_frame_entry): Update. * dwarf2loc.c (dwarf_reg_to_regnum): Update. * objc-lang.c (lookup_objc_class, lookup_child_selector) (info_selectors_command): Update. * macrotab.c (macro_include, check_for_redefinition) (macro_undef): Update. * objfiles.c (filter_overlapping_sections): Update. * stabsread.c (invalid_cpp_abbrev_complaint) (reg_value_complaint, stabs_general_complaint, dbx_lookup_type) (define_symbol, error_type, read_type, rs6000_builtin_type) (stabs_method_name_from_physname, read_member_functions) (read_cpp_abbrev, read_baseclasses, read_tilde_fields) (attach_fields_to_type, complain_about_struct_wipeout) (read_range_type, read_args, common_block_start) (common_block_end, cleanup_undefined_types_1, scan_file_globals): Update. * mdebugread.c (index_complaint, unknown_ext_complaint) (basic_type_complaint, bad_tag_guess_complaint) (bad_rfd_entry_complaint, unexpected_type_code_complaint) (reg_value_complaint, parse_symbol, parse_type, upgrade_type) (parse_procedure, parse_lines) (function_outside_compilation_unit_complaint) (parse_partial_symbols, psymtab_to_symtab_1, cross_ref) (bad_tag_guess_complaint, reg_value_complaint): Update. * cp-support.c (demangled_name_complaint): Update. * macroscope.c (sal_macro_scope): Update. * dwarf-index-write.c (class debug_names): Update. gdb/testsuite/ChangeLog 2018-05-23 Tom Tromey <tom@tromey.com> * gdb.gdb/complaints.exp (test_initial_complaints): Don't mention symfile_complaints. (test_short_complaints): Likewise. (test_empty_complaints): Likewise. (test_initial_complaints): Update.
Diffstat (limited to 'gdb/complaints.c')
-rw-r--r--gdb/complaints.c45
1 files changed, 13 insertions, 32 deletions
diff --git a/gdb/complaints.c b/gdb/complaints.c
index d29b3c7..4ee35a6 100644
--- a/gdb/complaints.c
+++ b/gdb/complaints.c
@@ -83,21 +83,6 @@ static struct complaints symfile_complaint_book = {
ISOLATED_MESSAGE,
symfile_explanations
};
-struct complaints *symfile_complaints = &symfile_complaint_book;
-
-/* Wrapper function to, on-demand, fill in a complaints object. */
-
-static struct complaints *
-get_complaints (struct complaints **c)
-{
- if ((*c) != NULL)
- return (*c);
- (*c) = XNEW (struct complaints);
- (*c)->root = &complaint_sentinel;
- (*c)->series = ISOLATED_MESSAGE;
- (*c)->explanation = NULL;
- return (*c);
-}
static struct complain * ATTRIBUTE_PRINTF (4, 0)
find_complaint (struct complaints *complaints, const char *file,
@@ -143,23 +128,20 @@ int stop_whining = 0;
/* Print a complaint, and link the complaint block into a chain for
later handling. */
-static void ATTRIBUTE_PRINTF (4, 0)
-vcomplaint (struct complaints **c, const char *file,
+static void ATTRIBUTE_PRINTF (3, 0)
+vcomplaint (const char *file,
int line, const char *fmt,
va_list args)
{
- struct complaints *complaints = get_complaints (c);
- struct complain *complaint = find_complaint (complaints, file,
+ struct complain *complaint = find_complaint (&symfile_complaint_book, file,
line, fmt);
enum complaint_series series;
- gdb_assert (complaints != NULL);
-
complaint->counter++;
if (complaint->counter > stop_whining)
return;
- series = complaints->series;
+ series = symfile_complaint_book.series;
/* Pass 'fmt' instead of 'complaint->fmt' to printf-like callees
from here on, to avoid "format string is not a string literal"
@@ -174,7 +156,7 @@ vcomplaint (struct complaints **c, const char *file,
(*deprecated_warning_hook) (fmt, args);
else
{
- if (complaints->explanation == NULL)
+ if (symfile_complaint_book.explanation == NULL)
/* A [v]warning() call always appends a newline. */
vwarning (fmt, args);
else
@@ -184,9 +166,9 @@ vcomplaint (struct complaints **c, const char *file,
begin_line ();
/* XXX: i18n */
fprintf_filtered (gdb_stderr, "%s%s%s",
- complaints->explanation[series].prefix,
+ symfile_complaint_book.explanation[series].prefix,
msg.c_str (),
- complaints->explanation[series].postfix);
+ symfile_complaint_book.explanation[series].postfix);
/* Force a line-break after any isolated message. */
if (series == ISOLATED_MESSAGE)
/* It would be really nice to use begin_line() here.
@@ -207,12 +189,12 @@ vcomplaint (struct complaints **c, const char *file,
}
void
-complaint_internal (struct complaints **complaints, const char *fmt, ...)
+complaint_internal (const char *fmt, ...)
{
va_list args;
va_start (args, fmt);
- vcomplaint (complaints, NULL/*file*/, 0/*line*/, fmt, args);
+ vcomplaint (NULL/*file*/, 0/*line*/, fmt, args);
va_end (args);
}
@@ -223,20 +205,19 @@ complaint_internal (struct complaints **complaints, const char *fmt, ...)
complaints (rather than being interleaved with other messages). */
void
-clear_complaints (struct complaints **c, int less_verbose)
+clear_complaints (int less_verbose)
{
- struct complaints *complaints = get_complaints (c);
struct complain *p;
- for (p = complaints->root; p != NULL; p = p->next)
+ for (p = symfile_complaint_book.root; p != NULL; p = p->next)
{
p->counter = 0;
}
if (!less_verbose)
- complaints->series = ISOLATED_MESSAGE;
+ symfile_complaint_book.series = ISOLATED_MESSAGE;
else
- complaints->series = SHORT_FIRST_MESSAGE;
+ symfile_complaint_book.series = SHORT_FIRST_MESSAGE;
}
static void