Replace complain() with complaint().

This commit is contained in:
Kevin Buettner 2002-12-17 00:39:08 +00:00
parent bcc61ecbbb
commit 231367095d
15 changed files with 644 additions and 717 deletions

View file

@ -1,3 +1,136 @@
2002-12-16 Kevin Buettner <kevinb@redhat.com>
* buildsym.c (block_end_complaint, anon_block_end_complaint)
(innerblock_complaint, innerblock_anon_complaint)
(blockvector_complaint): Delete deprecated complaint structs.
(finish_block, make_blockvector, end_symtab): Replace calls
to complain() with calls to complaint().
* coffread.c (ef_complaint, ef_stack_complaint, eb_stack_complaint)
(bf_no_aux_complaint, ef_no_aux_complaint, lineno_complaint)
(unexpected_type_complaint, bad_sclass_complaint)
(misordered_blocks_complaint, tagndx_bad_complaint, eb_complaint):
Delete deprecated complaint structs.
(coff_symtab_read, enter_linenos, decode_type, decode_base_type):
Replace calls to complain() with calls to complaint().
* dbxread.c (lbrac_complaint, string_table_offset_complaint)
(unknown_symtype_complaint, unknown_symchar_complaint)
(lbrac_rbrac_complaint, lbrac_unmatched_complaint)
(lbrac_mismatch_complaint, repeated_header_complaint)
(unclaimed_bincl_complaint, discarding_local_symbols_complaint):
Delete deprecated complaint structs.
(unknown_symtype_complaint, lbrac_mismatch_complaint)
(repeated_header_complaint)
(function_outside_compiliation_unit_complaint): New functions.
(add_old_header_file, find_corresponding_bincl_psymtab)
(set_namestring, find_stab_function_addr, read_dbx_symtab)
(process_one_symbol): Replace calls to complain() with, possibly
indirect, calls to complaint().
* dwarfread.c (no_bfd_get_N, malformed_die, bad_die_ref)
(unknown_attribute_form, unknown_attribute_length)
(unexpected_fund_type, unknown_type_modifier, volatile_ignored)
(const_ignored, botched_modified_type, op_deref2, op_deref4)
(basereg_not_handled, dup_user_type_allocation)
(dup_user_type_definition, missing_tag, bad_array_element_type)
(subscript_data_items, unhandled_array_subscript_format)
(unknown_array_subscript_format, not_row_major)
(missing_at_name): Delete deprecated complaint structs.
(bad_die_ref_complaint, unknown_attribute_form_complaint)
(dup_user_type_definition_complaint)
(bad_array_element_type_complaint): New functions.
(lookup_utype, alloc_utype, struct_type, decode_array_element_type)
(decode_subscript_data_item, dwarf_read_array_type)
(read_tag_string_type, read_subroutine_type, read_func_scope)
(locval, scan_partial_symbols, decode_modified_type)
(decode_func_type, basicdieinfo, completeddieinfo, target_to_host)
(attribute_size): Replace calls to complain() with, possibly
indirect, calls to complaint().
* elfread.c (section_info_complaint, section_info_dup_complaint)
(stab_info_mismatch_complaint, stab_info_questionable_complaint):
Delete deprecated complaint structs.
(elf_symtab_read, elfstab_offset_sections): Replace calls to
complain() with calls to complaint().
* gdbtypes.c (stub_noname_complaint): Delete deprecated complaint
struct.
(stub_noname_complaint): New function.
(check_typedef, add_mangled_type): Replace calls to complain()
with calls to complaint().
* hpread.c (string_table_offset_complaint, lbrac_unmatched_complaint)
(lbrac_mismatch_complaint, hpread_unhandled_end_common_complaint)
(hpread_unhandled_type_complaint, hpread_struct_complaint)
(hpread_array_complaint, hpread_type_lookup_complaint)
(hpread_unexpected_end_complaint, hpread_tagdef_complaint)
(hpread_unhandled_common_complaint)
(hpread_unhandled_blockdata_complaint): Delete deprecated complaint
struct definitions and declarations.
(lbrac_unmatched_complaint, lbrac_mismatch_complaint): New functions.
(SET_NAMESTRING, hpread_type_lookup, hpread_process_one_debug_symbol):
Replace calls to complain() with, possibly indirect, calls to
complaint().
* macrotab.c (macro_include, check_for_redefinition, macro_undef):
Likewise.
* mdebugread.c (bad_file_number_complaint, index_complaint)
(aux_index_complaint, block_index_complaint)
(unknown_ext_complaint, unknown_sym_complaint)
(unknown_st_complaint, block_overflow_complaint)
(basic_type_complaint, unknown_type_qual_complaint)
(array_index_type_complaint, bad_tag_guess_complaint)
(block_member_complaint, stEnd_complaint)
(unknown_mdebug_symtype_complaint, stab_unknown_complaint)
(pdr_for_nonsymbol_complaint, pdr_static_symbol_complaint)
(bad_setjmp_pdr_complaint, bad_fbitfield_complaint)
(bad_continued_complaint, bad_rfd_entry_complaint)
(unexpected_type_code_complaint, unable_to_cross_ref_complaint)
(bad_indirect_xref_complaint, illegal_forward_tq0_complaint)
(illegal_forward_bt_complaint, bad_linetable_guess_complaint)
(bad_ext_ifd_complaint, bad_ext_iss_complaint): Delete deprecated
complaint structs.
(index_complaint, unknown_ext_complaint, basic_type_complaint)
(bad_tag_guess_complaint, bad_rfd_entry_complaint)
(unexpected_type_code_complaint)
(function_outside_compilation_unit_complaint): New functions.
(parse_symbol, parse_type, upgrade_type, parse_procedure)
(parse_partial_symbols, psymtab_to_symtab_1, cross_ref, add_symbol):
Replace calls to complain() with, possibly indirect calls to
complaint().
* objc-lang.c (noclass_lookup_complaint, nosel_lookup_complaint):
Delete deprecated complaint structs.
(lookup__objc_class, lookup_child_selector): Replace complain()
with complaint().
* remote-vx.c (cant_contact_target): Delete deprecated complaint
struct.
(vx_lookup_symbol): Replace complain() with complaint().
* stabsread.c (invalid_cpp_abbrev_complaint)
(invalid_cpp_type_complaint, member_fn_complaint)
(const_vol_complaint, error_type_complaint)
(invalid_member_complaint, range_type_base_complaint)
(reg_value_complaint, vtbl_notfound_complaint)
(unrecognized_cplus_name_complaint, rs6000_builtin_complaint)
(unresolved_sym_chain_complaint, stabs_general_complaint)
(lrs_general_complaint, multiply_defined_struct): Delete
deprecated complaint structs.
(invalid_cpp_abbrev_complaint, ref_value_complaint)
(stabs_general_complaint, lrs_general_complaint)
(msg_unknown_complaint): New functions.
(dbx_lookup_type, read_cfront_baseclasses)
(read_cfront_member_functions, resolve_symbol_reference)
(define_symbol, resolve_live_range, add_live_range, read_type)
(rs6000_builtin_type, read_member_functions, read_cpp_abbrev)
(read_one_struct_field, read_baseclasses, read_tilde_fields)
(read_cfront_static_fields, attach_fields_to_type)
(complain_about_struct_wipeout, read_range_type)
(common_block_start, common_block_end, cleanup_undefined_types)
(scan_file_globals): Replace complain() with complaint().
* stabsread.h (unknown_symtype_complaint, unknown_symchar_complaint):
Delete deprecated complaint struct declarations.
* xcoffread.c (storclass_complaint, bf_notfound_complaint)
(ef_complaint, eb_complaint): Delete deprecated complaint structs.
(bf_not_found_complaint, ef_complaint, eb_complaint)
(function_outside_compilation_unit_complaint): New functions.
(record_include_begin, record_include_end, enter_line_range)
(xcoff_next_symbol_text, read_xcoff_symtab, process_xcoff_symbol)
(read_symbol, read_symbol_lineno, scan_xcoff_symtab) Replace
complain() with complaint().
2002-12-16 Andrew Cagney <ac131313@redhat.com> 2002-12-16 Andrew Cagney <ac131313@redhat.com>
* config/arc/arc.mt, config/arc/tm-arc.h: Delete. * config/arc/arc.mt, config/arc/tm-arc.h: Delete.

View file

@ -73,23 +73,6 @@ static int compare_line_numbers (const void *ln1p, const void *ln2p);
#define INITIAL_LINE_VECTOR_LENGTH 1000 #define INITIAL_LINE_VECTOR_LENGTH 1000
/* Complaints about the symbols we have encountered. */
struct deprecated_complaint block_end_complaint =
{"block end address less than block start address in %s (patched it)", 0, 0};
struct deprecated_complaint anon_block_end_complaint =
{"block end address 0x%lx less than block start address 0x%lx (patched it)", 0, 0};
struct deprecated_complaint innerblock_complaint =
{"inner block not inside outer block in %s", 0, 0};
struct deprecated_complaint innerblock_anon_complaint =
{"inner block (0x%lx-0x%lx) not inside outer block (0x%lx-0x%lx)", 0, 0};
struct deprecated_complaint blockvector_complaint =
{"block at %s out of order", 0, 0};
/* maintain the lists of symbols and blocks */ /* maintain the lists of symbols and blocks */
/* Add a pending list to free_pendings. */ /* Add a pending list to free_pendings. */
@ -408,11 +391,15 @@ finish_block (struct symbol *symbol, struct pending **listhead,
{ {
if (symbol) if (symbol)
{ {
complain (&block_end_complaint, SYMBOL_SOURCE_NAME (symbol)); complaint (&symfile_complaints,
"block end address less than block start address in %s (patched it)",
SYMBOL_SOURCE_NAME (symbol));
} }
else else
{ {
complain (&anon_block_end_complaint, BLOCK_END (block), BLOCK_START (block)); complaint (&symfile_complaints,
"block end address 0x%s less than block start address 0x%s (patched it)",
paddr_nz (BLOCK_END (block)), paddr_nz (BLOCK_START (block)));
} }
/* Better than nothing */ /* Better than nothing */
BLOCK_END (block) = BLOCK_START (block); BLOCK_END (block) = BLOCK_START (block);
@ -438,14 +425,18 @@ finish_block (struct symbol *symbol, struct pending **listhead,
{ {
if (symbol) if (symbol)
{ {
complain (&innerblock_complaint, complaint (&symfile_complaints,
SYMBOL_SOURCE_NAME (symbol)); "inner block not inside outer block in %s",
SYMBOL_SOURCE_NAME (symbol));
} }
else else
{ {
complain (&innerblock_anon_complaint, BLOCK_START (pblock->block), complaint (&symfile_complaints,
BLOCK_END (pblock->block), BLOCK_START (block), "inner block (0x%s-0x%s) not inside outer block (0x%s-0x%s)",
BLOCK_END (block)); paddr_nz (BLOCK_START (pblock->block)),
paddr_nz (BLOCK_END (pblock->block)),
paddr_nz (BLOCK_START (block)),
paddr_nz (BLOCK_END (block)));
} }
if (BLOCK_START (pblock->block) < BLOCK_START (block)) if (BLOCK_START (pblock->block) < BLOCK_START (block))
BLOCK_START (pblock->block) = BLOCK_START (block); BLOCK_START (pblock->block) = BLOCK_START (block);
@ -550,8 +541,8 @@ make_blockvector (struct objfile *objfile)
CORE_ADDR start CORE_ADDR start
= BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i)); = BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i));
complain (&blockvector_complaint, complaint (&symfile_complaints, "block at %s out of order",
local_hex_string ((LONGEST) start)); local_hex_string ((LONGEST) start));
} }
} }
} }
@ -870,9 +861,8 @@ end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
same. FIXME: Find out why it is happening. This is not same. FIXME: Find out why it is happening. This is not
believed to happen in most cases (even for coffread.c); believed to happen in most cases (even for coffread.c);
it used to be an abort(). */ it used to be an abort(). */
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{"Context stack not empty in end_symtab", 0, 0}; "Context stack not empty in end_symtab");
complain (&msg);
context_stack_depth = 0; context_stack_depth = 0;
} }
} }

View file

@ -122,41 +122,6 @@ static int pe_file;
static struct symbol *opaque_type_chain[HASHSIZE]; static struct symbol *opaque_type_chain[HASHSIZE];
/* Complaints about various problems in the file being read */
struct deprecated_complaint ef_complaint =
{"Unmatched .ef symbol(s) ignored starting at symnum %d", 0, 0};
struct deprecated_complaint ef_stack_complaint =
{"`.ef' symbol without matching `.bf' symbol ignored starting at symnum %d", 0, 0};
struct deprecated_complaint eb_stack_complaint =
{"`.eb' symbol without matching `.bb' symbol ignored starting at symnum %d", 0, 0};
struct deprecated_complaint bf_no_aux_complaint =
{"`.bf' symbol %d has no aux entry", 0, 0};
struct deprecated_complaint ef_no_aux_complaint =
{"`.ef' symbol %d has no aux entry", 0, 0};
struct deprecated_complaint lineno_complaint =
{"Line number pointer %d lower than start of line numbers", 0, 0};
struct deprecated_complaint unexpected_type_complaint =
{"Unexpected type for symbol %s", 0, 0};
struct deprecated_complaint bad_sclass_complaint =
{"Bad n_sclass for symbol %s", 0, 0};
struct deprecated_complaint misordered_blocks_complaint =
{"Blocks out of order at address %x", 0, 0};
struct deprecated_complaint tagndx_bad_complaint =
{"Symbol table entry for %s has bad tagndx value", 0, 0};
struct deprecated_complaint eb_complaint =
{"Mismatched .eb symbol ignored starting at symnum %d", 0, 0};
/* Simplified internal version of coff symbol table information */ /* Simplified internal version of coff symbol table information */
struct coff_symbol struct coff_symbol
@ -821,7 +786,8 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
case C_LINE: case C_LINE:
case C_ALIAS: case C_ALIAS:
case C_HIDDEN: case C_HIDDEN:
complain (&bad_sclass_complaint, cs->c_name); complaint (&symfile_complaints, "Bad n_sclass for symbol %s",
cs->c_name);
break; break;
case C_FILE: case C_FILE:
@ -987,7 +953,8 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
/* main_aux.x_sym.x_misc.x_lnsz.x_lnno /* main_aux.x_sym.x_misc.x_lnsz.x_lnno
contains line number of '{' } */ contains line number of '{' } */
if (cs->c_naux != 1) if (cs->c_naux != 1)
complain (&bf_no_aux_complaint, cs->c_symnum); complaint (&symfile_complaints,
"`.bf' symbol %d has no aux entry", cs->c_symnum);
fcn_first_line = main_aux.x_sym.x_misc.x_lnsz.x_lnno; fcn_first_line = main_aux.x_sym.x_misc.x_lnsz.x_lnno;
fcn_first_line_addr = cs->c_value; fcn_first_line_addr = cs->c_value;
@ -1011,7 +978,9 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
if (context_stack_depth <= 0) if (context_stack_depth <= 0)
{ /* We attempted to pop an empty context stack */ { /* We attempted to pop an empty context stack */
complain (&ef_stack_complaint, cs->c_symnum); complaint (&symfile_complaints,
"`.ef' symbol without matching `.bf' symbol ignored starting at symnum %d",
cs->c_symnum);
within_function = 0; within_function = 0;
break; break;
} }
@ -1020,13 +989,16 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
/* Stack must be empty now. */ /* Stack must be empty now. */
if (context_stack_depth > 0 || new == NULL) if (context_stack_depth > 0 || new == NULL)
{ {
complain (&ef_complaint, cs->c_symnum); complaint (&symfile_complaints,
"Unmatched .ef symbol(s) ignored starting at symnum %d",
cs->c_symnum);
within_function = 0; within_function = 0;
break; break;
} }
if (cs->c_naux != 1) if (cs->c_naux != 1)
{ {
complain (&ef_no_aux_complaint, cs->c_symnum); complaint (&symfile_complaints,
"`.ef' symbol %d has no aux entry", cs->c_symnum);
fcn_last_line = 0x7FFFFFFF; fcn_last_line = 0x7FFFFFFF;
} }
else else
@ -1081,14 +1053,18 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
{ {
if (context_stack_depth <= 0) if (context_stack_depth <= 0)
{ /* We attempted to pop an empty context stack */ { /* We attempted to pop an empty context stack */
complain (&eb_stack_complaint, cs->c_symnum); complaint (&symfile_complaints,
"`.eb' symbol without matching `.bb' symbol ignored starting at symnum %d",
cs->c_symnum);
break; break;
} }
new = pop_context (); new = pop_context ();
if (depth-- != new->depth) if (depth-- != new->depth)
{ {
complain (&eb_complaint, symnum); complaint (&symfile_complaints,
"Mismatched .eb symbol ignored starting at symnum %d",
symnum);
break; break;
} }
if (local_symbols && context_stack_depth > 0) if (local_symbols && context_stack_depth > 0)
@ -1367,7 +1343,9 @@ enter_linenos (long file_offset, register int first_line,
return; return;
if (file_offset < linetab_offset) if (file_offset < linetab_offset)
{ {
complain (&lineno_complaint, file_offset); complaint (&symfile_complaints,
"Line number pointer %ld lower than start of line numbers",
file_offset);
if (file_offset > linetab_size) /* Too big to be an offset? */ if (file_offset > linetab_size) /* Too big to be an offset? */
return; return;
file_offset += linetab_offset; /* Try reading at that linetab offset */ file_offset += linetab_offset; /* Try reading at that linetab offset */
@ -1772,7 +1750,9 @@ decode_type (register struct coff_symbol *cs, unsigned int c_type,
} }
else else
{ {
complain (&tagndx_bad_complaint, cs->c_name); complaint (&symfile_complaints,
"Symbol table entry for %s has bad tagndx value",
cs->c_name);
/* And fall through to decode_base_type... */ /* And fall through to decode_base_type... */
} }
} }
@ -1938,7 +1918,7 @@ decode_base_type (register struct coff_symbol *cs, unsigned int c_type,
else else
return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG); return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG);
} }
complain (&unexpected_type_complaint, cs->c_name); complaint (&symfile_complaints, "Unexpected type for symbol %s", cs->c_name);
return lookup_fundamental_type (current_objfile, FT_VOID); return lookup_fundamental_type (current_objfile, FT_VOID);
} }

View file

@ -167,36 +167,27 @@ static int has_line_numbers;
/* Complaints about the symbols we have encountered. */ /* Complaints about the symbols we have encountered. */
struct deprecated_complaint lbrac_complaint = static void
{"bad block start address patched", 0, 0}; unknown_symtype_complaint (const char *arg1)
{
complaint (&symfile_complaints, "unknown symbol type %s", arg1);
}
struct deprecated_complaint string_table_offset_complaint = static void
{"bad string table offset in symbol %d", 0, 0}; lbrac_mismatch_complaint (int arg1)
{
complaint (&symfile_complaints,
"N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d", arg1);
}
struct deprecated_complaint unknown_symtype_complaint = static void
{"unknown symbol type %s", 0, 0}; repeated_header_complaint (const char *arg1, int arg2)
{
complaint (&symfile_complaints,
"\"repeated\" header file %s not previously seen, at symtab pos %d",
arg1, arg2);
}
struct deprecated_complaint unknown_symchar_complaint =
{"unknown symbol descriptor `%c'", 0, 0};
struct deprecated_complaint lbrac_rbrac_complaint =
{"block start larger than block end", 0, 0};
struct deprecated_complaint lbrac_unmatched_complaint =
{"unmatched N_LBRAC before symtab pos %d", 0, 0};
struct deprecated_complaint lbrac_mismatch_complaint =
{"N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d", 0, 0};
struct deprecated_complaint repeated_header_complaint =
{"\"repeated\" header file %s not previously seen, at symtab pos %d", 0, 0};
struct deprecated_complaint unclaimed_bincl_complaint =
{"N_BINCL %s not in entries for any file, at symtab pos %d", 0, 0};
struct deprecated_complaint discarding_local_symbols_complaint =
{"misplaced N_LBRAC entry; discarding local symbols which have no enclosing block", 0, 0};
/* find_text_range --- find start and end of loadable code sections /* find_text_range --- find start and end of loadable code sections
The find_text_range function finds the shortest address range that The find_text_range function finds the shortest address range that
@ -367,7 +358,7 @@ add_old_header_file (char *name, int instance)
add_this_object_header_file (i); add_this_object_header_file (i);
return; return;
} }
complain (&repeated_header_complaint, name, symnum); repeated_header_complaint (name, symnum);
} }
/* Add to this file a "new" header file: definitions for its types follow. /* Add to this file a "new" header file: definitions for its types follow.
@ -1022,7 +1013,7 @@ find_corresponding_bincl_psymtab (char *name, int instance)
&& STREQ (name, bincl->name)) && STREQ (name, bincl->name))
return bincl->pst; return bincl->pst;
complain (&repeated_header_complaint, name, symnum); repeated_header_complaint (name, symnum);
return (struct partial_symtab *) 0; return (struct partial_symtab *) 0;
} }
@ -1059,7 +1050,8 @@ set_namestring (struct objfile *objfile, struct internal_nlist nlist)
if (((unsigned) nlist.n_strx + file_string_table_offset) >= if (((unsigned) nlist.n_strx + file_string_table_offset) >=
DBX_STRINGTAB_SIZE (objfile)) DBX_STRINGTAB_SIZE (objfile))
{ {
complain (&string_table_offset_complaint, symnum); complaint (&symfile_complaints, "bad string table offset in symbol %d",
symnum);
namestring = "<bad string table offset>"; namestring = "<bad string table offset>";
} }
else else
@ -1256,6 +1248,14 @@ find_stab_function_addr (char *namestring, char *filename,
} }
#endif /* SOFUN_ADDRESS_MAYBE_MISSING */ #endif /* SOFUN_ADDRESS_MAYBE_MISSING */
static void
function_outside_compilation_unit_complaint (const char *arg1)
{
complaint (&symfile_complaints,
"function `%s' appears to be defined outside of all compilation units",
arg1);
}
/* Setup partial_symtab's describing each source file for which /* Setup partial_symtab's describing each source file for which
debugging information is available. */ debugging information is available. */
@ -1360,9 +1360,6 @@ read_dbx_symtab (struct objfile *objfile)
switch (nlist.n_type) switch (nlist.n_type)
{ {
static struct deprecated_complaint function_outside_compilation_unit = {
"function `%s' appears to be defined outside of all compilation units", 0, 0
};
char *p; char *p;
/* /*
* Standard, external, non-debugger, symbols * Standard, external, non-debugger, symbols
@ -1613,7 +1610,9 @@ read_dbx_symtab (struct objfile *objfile)
{ {
/* FIXME: we should not get here without a PST to work on. /* FIXME: we should not get here without a PST to work on.
Attempt to recover. */ Attempt to recover. */
complain (&unclaimed_bincl_complaint, namestring, symnum); complaint (&symfile_complaints,
"N_BINCL %s not in entries for any file, at symtab pos %d",
namestring, symnum);
continue; continue;
} }
add_bincl_to_list (pst, namestring, nlist.n_value); add_bincl_to_list (pst, namestring, nlist.n_value);
@ -1887,7 +1886,7 @@ read_dbx_symtab (struct objfile *objfile)
char *name = xmalloc (name_len + 1); char *name = xmalloc (name_len + 1);
memcpy (name, namestring, name_len); memcpy (name, namestring, name_len);
name[name_len] = '\0'; name[name_len] = '\0';
complain (&function_outside_compilation_unit, name); function_outside_compilation_unit_complaint (name);
xfree (name); xfree (name);
} }
nlist.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); nlist.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@ -1952,7 +1951,7 @@ read_dbx_symtab (struct objfile *objfile)
char *name = xmalloc (name_len + 1); char *name = xmalloc (name_len + 1);
memcpy (name, namestring, name_len); memcpy (name, namestring, name_len);
name[name_len] = '\0'; name[name_len] = '\0';
complain (&function_outside_compilation_unit, name); function_outside_compilation_unit_complaint (name);
xfree (name); xfree (name);
} }
nlist.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); nlist.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@ -2047,7 +2046,8 @@ read_dbx_symtab (struct objfile *objfile)
time searching to the end of every string looking for time searching to the end of every string looking for
a backslash. */ a backslash. */
complain (&unknown_symchar_complaint, p[1]); complaint (&symfile_complaints, "unknown symbol descriptor `%c'",
p[1]);
/* Ignore it; perhaps it is an extension that we don't /* Ignore it; perhaps it is an extension that we don't
know about. */ know about. */
@ -2161,8 +2161,7 @@ read_dbx_symtab (struct objfile *objfile)
default: default:
/* If we haven't found it yet, ignore it. It's probably some /* If we haven't found it yet, ignore it. It's probably some
new type we don't know about yet. */ new type we don't know about yet. */
complain (&unknown_symtype_complaint, unknown_symtype_complaint (local_hex_string (nlist.n_type));
local_hex_string (nlist.n_type));
continue; continue;
} }
} }
@ -2777,7 +2776,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
if (context_stack_depth <= 0) if (context_stack_depth <= 0)
{ {
complain (&lbrac_mismatch_complaint, symnum); lbrac_mismatch_complaint (symnum);
break; break;
} }
@ -2827,7 +2826,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
if (!SUN_FIXED_LBRAC_BUG && valu < last_pc_address) if (!SUN_FIXED_LBRAC_BUG && valu < last_pc_address)
{ {
/* Patch current LBRAC pc value to match last handy pc value */ /* Patch current LBRAC pc value to match last handy pc value */
complain (&lbrac_complaint); complaint (&symfile_complaints, "bad block start address patched");
valu = last_pc_address; valu = last_pc_address;
} }
#endif #endif
@ -2852,13 +2851,13 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
if (context_stack_depth <= 0) if (context_stack_depth <= 0)
{ {
complain (&lbrac_mismatch_complaint, symnum); lbrac_mismatch_complaint (symnum);
break; break;
} }
new = pop_context (); new = pop_context ();
if (desc != new->depth) if (desc != new->depth)
complain (&lbrac_mismatch_complaint, symnum); lbrac_mismatch_complaint (symnum);
/* Some compilers put the variable decls inside of an /* Some compilers put the variable decls inside of an
LBRAC/RBRAC block. This macro should be nonzero if this LBRAC/RBRAC block. This macro should be nonzero if this
@ -2883,7 +2882,8 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
symbols within an LBRAC/RBRAC block; this complaint symbols within an LBRAC/RBRAC block; this complaint
might also help sort out problems in which might also help sort out problems in which
VARIABLES_INSIDE_BLOCK is incorrectly defined. */ VARIABLES_INSIDE_BLOCK is incorrectly defined. */
complain (&discarding_local_symbols_complaint); complaint (&symfile_complaints,
"misplaced N_LBRAC entry; discarding local symbols which have no enclosing block");
} }
local_symbols = new->locals; local_symbols = new->locals;
} }
@ -2903,7 +2903,8 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
compilers? Is this ever harmful?). */ compilers? Is this ever harmful?). */
if (new->start_addr > valu) if (new->start_addr > valu)
{ {
complain (&lbrac_rbrac_complaint); complaint (&symfile_complaints,
"block start larger than block end");
new->start_addr = valu; new->start_addr = valu;
} }
/* Make a block for the local symbols within. */ /* Make a block for the local symbols within. */
@ -3127,7 +3128,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
case N_NBBSS: case N_NBBSS:
case N_NBSTS: case N_NBSTS:
case N_NBLCS: case N_NBLCS:
complain (&unknown_symtype_complaint, local_hex_string (type)); unknown_symtype_complaint (local_hex_string (type));
/* FALLTHROUGH */ /* FALLTHROUGH */
/* The following symbol types don't need the address field relocated, /* The following symbol types don't need the address field relocated,
@ -3239,7 +3240,8 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
if (context_stack_depth > 1) if (context_stack_depth > 1)
{ {
complain (&lbrac_unmatched_complaint, symnum); complaint (&symfile_complaints,
"unmatched N_LBRAC before symtab pos %d", symnum);
break; break;
} }

View file

@ -62,115 +62,37 @@
/* Complaints that can be issued during DWARF debug info reading. */ /* Complaints that can be issued during DWARF debug info reading. */
struct deprecated_complaint no_bfd_get_N = static void
bad_die_ref_complaint (int arg1, const char *arg2, int arg3)
{ {
"DIE @ 0x%x \"%s\", no bfd support for %d byte data object", 0, 0 complaint (&symfile_complaints,
}; "DIE @ 0x%x \"%s\", reference to DIE (0x%x) outside compilation unit",
arg1, arg2, arg3);
}
struct deprecated_complaint malformed_die = static void
unknown_attribute_form_complaint (int arg1, const char *arg2, int arg3)
{ {
"DIE @ 0x%x \"%s\", malformed DIE, bad length (%d bytes)", 0, 0 complaint (&symfile_complaints,
}; "DIE @ 0x%x \"%s\", unknown attribute form (0x%x)", arg1, arg2,
arg3);
}
struct deprecated_complaint bad_die_ref = static void
dup_user_type_definition_complaint (int arg1, const char *arg2)
{ {
"DIE @ 0x%x \"%s\", reference to DIE (0x%x) outside compilation unit", 0, 0 complaint (&symfile_complaints,
}; "DIE @ 0x%x \"%s\", internal error: duplicate user type definition",
arg1, arg2);
}
struct deprecated_complaint unknown_attribute_form = static void
bad_array_element_type_complaint (int arg1, const char *arg2, int arg3)
{ {
"DIE @ 0x%x \"%s\", unknown attribute form (0x%x)", 0, 0 complaint (&symfile_complaints,
}; "DIE @ 0x%x \"%s\", bad array element type attribute 0x%x", arg1,
arg2, arg3);
struct deprecated_complaint unknown_attribute_length = }
{
"DIE @ 0x%x \"%s\", unknown attribute length, skipped remaining attributes", 0, 0
};
struct deprecated_complaint unexpected_fund_type =
{
"DIE @ 0x%x \"%s\", unexpected fundamental type 0x%x", 0, 0
};
struct deprecated_complaint unknown_type_modifier =
{
"DIE @ 0x%x \"%s\", unknown type modifier %u", 0, 0
};
struct deprecated_complaint volatile_ignored =
{
"DIE @ 0x%x \"%s\", type modifier 'volatile' ignored", 0, 0
};
struct deprecated_complaint const_ignored =
{
"DIE @ 0x%x \"%s\", type modifier 'const' ignored", 0, 0
};
struct deprecated_complaint botched_modified_type =
{
"DIE @ 0x%x \"%s\", botched modified type decoding (mtype 0x%x)", 0, 0
};
struct deprecated_complaint op_deref2 =
{
"DIE @ 0x%x \"%s\", OP_DEREF2 address 0x%x not handled", 0, 0
};
struct deprecated_complaint op_deref4 =
{
"DIE @ 0x%x \"%s\", OP_DEREF4 address 0x%x not handled", 0, 0
};
struct deprecated_complaint basereg_not_handled =
{
"DIE @ 0x%x \"%s\", BASEREG %d not handled", 0, 0
};
struct deprecated_complaint dup_user_type_allocation =
{
"DIE @ 0x%x \"%s\", internal error: duplicate user type allocation", 0, 0
};
struct deprecated_complaint dup_user_type_definition =
{
"DIE @ 0x%x \"%s\", internal error: duplicate user type definition", 0, 0
};
struct deprecated_complaint missing_tag =
{
"DIE @ 0x%x \"%s\", missing class, structure, or union tag", 0, 0
};
struct deprecated_complaint bad_array_element_type =
{
"DIE @ 0x%x \"%s\", bad array element type attribute 0x%x", 0, 0
};
struct deprecated_complaint subscript_data_items =
{
"DIE @ 0x%x \"%s\", can't decode subscript data items", 0, 0
};
struct deprecated_complaint unhandled_array_subscript_format =
{
"DIE @ 0x%x \"%s\", array subscript format 0x%x not handled yet", 0, 0
};
struct deprecated_complaint unknown_array_subscript_format =
{
"DIE @ 0x%x \"%s\", unknown array subscript format %x", 0, 0
};
struct deprecated_complaint not_row_major =
{
"DIE @ 0x%x \"%s\", array not row major; not handled correctly", 0, 0
};
struct deprecated_complaint missing_at_name =
{
"DIE @ 0x%x, AT_name tag missing", 0, 0
};
typedef unsigned int DIE_REF; /* Reference to a DIE */ typedef unsigned int DIE_REF; /* Reference to a DIE */
@ -786,7 +708,7 @@ lookup_utype (DIE_REF die_ref)
utypeidx = (die_ref - dbroff) / 4; utypeidx = (die_ref - dbroff) / 4;
if ((utypeidx < 0) || (utypeidx >= numutypes)) if ((utypeidx < 0) || (utypeidx >= numutypes))
{ {
complain (&bad_die_ref, DIE_ID, DIE_NAME); bad_die_ref_complaint (DIE_ID, DIE_NAME, die_ref);
} }
else else
{ {
@ -828,12 +750,14 @@ alloc_utype (DIE_REF die_ref, struct type *utypep)
if ((utypeidx < 0) || (utypeidx >= numutypes)) if ((utypeidx < 0) || (utypeidx >= numutypes))
{ {
utypep = dwarf_fundamental_type (current_objfile, FT_INTEGER); utypep = dwarf_fundamental_type (current_objfile, FT_INTEGER);
complain (&bad_die_ref, DIE_ID, DIE_NAME); bad_die_ref_complaint (DIE_ID, DIE_NAME, die_ref);
} }
else if (*typep != NULL) else if (*typep != NULL)
{ {
utypep = *typep; utypep = *typep;
complain (&dup_user_type_allocation, DIE_ID, DIE_NAME); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", internal error: duplicate user type allocation",
DIE_ID, DIE_NAME);
} }
else else
{ {
@ -978,7 +902,9 @@ struct_type (struct dieinfo *dip, char *thisdie, char *enddie,
default: default:
/* Should never happen */ /* Should never happen */
TYPE_CODE (type) = TYPE_CODE_UNDEF; TYPE_CODE (type) = TYPE_CODE_UNDEF;
complain (&missing_tag, DIE_ID, DIE_NAME); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", missing class, structure, or union tag",
DIE_ID, DIE_NAME);
break; break;
} }
/* Some compilers try to be helpful by inventing "fake" names for /* Some compilers try to be helpful by inventing "fake" names for
@ -1191,7 +1117,7 @@ decode_array_element_type (char *scan)
scan += SIZEOF_ATTRIBUTE; scan += SIZEOF_ATTRIBUTE;
if ((nbytes = attribute_size (attribute)) == -1) if ((nbytes = attribute_size (attribute)) == -1)
{ {
complain (&bad_array_element_type, DIE_ID, DIE_NAME, attribute); bad_array_element_type_complaint (DIE_ID, DIE_NAME, attribute);
typep = dwarf_fundamental_type (current_objfile, FT_INTEGER); typep = dwarf_fundamental_type (current_objfile, FT_INTEGER);
} }
else else
@ -1218,7 +1144,7 @@ decode_array_element_type (char *scan)
typep = decode_mod_u_d_type (scan); typep = decode_mod_u_d_type (scan);
break; break;
default: default:
complain (&bad_array_element_type, DIE_ID, DIE_NAME, attribute); bad_array_element_type_complaint (DIE_ID, DIE_NAME, attribute);
typep = dwarf_fundamental_type (current_objfile, FT_INTEGER); typep = dwarf_fundamental_type (current_objfile, FT_INTEGER);
break; break;
} }
@ -1306,7 +1232,9 @@ decode_subscript_data_item (char *scan, char *end)
if (nexttype == NULL) if (nexttype == NULL)
{ {
/* Munged subscript data or other problem, fake it. */ /* Munged subscript data or other problem, fake it. */
complain (&subscript_data_items, DIE_ID, DIE_NAME); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", can't decode subscript data items",
DIE_ID, DIE_NAME);
nexttype = dwarf_fundamental_type (current_objfile, FT_INTEGER); nexttype = dwarf_fundamental_type (current_objfile, FT_INTEGER);
} }
rangetype = create_range_type ((struct type *) NULL, indextype, rangetype = create_range_type ((struct type *) NULL, indextype,
@ -1320,13 +1248,17 @@ decode_subscript_data_item (char *scan, char *end)
case FMT_UT_C_X: case FMT_UT_C_X:
case FMT_UT_X_C: case FMT_UT_X_C:
case FMT_UT_X_X: case FMT_UT_X_X:
complain (&unhandled_array_subscript_format, DIE_ID, DIE_NAME, format); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", array subscript format 0x%x not handled yet",
DIE_ID, DIE_NAME, format);
nexttype = dwarf_fundamental_type (current_objfile, FT_INTEGER); nexttype = dwarf_fundamental_type (current_objfile, FT_INTEGER);
rangetype = create_range_type ((struct type *) NULL, nexttype, 0, 0); rangetype = create_range_type ((struct type *) NULL, nexttype, 0, 0);
typep = create_array_type ((struct type *) NULL, nexttype, rangetype); typep = create_array_type ((struct type *) NULL, nexttype, rangetype);
break; break;
default: default:
complain (&unknown_array_subscript_format, DIE_ID, DIE_NAME, format); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", unknown array subscript format %x", DIE_ID,
DIE_NAME, format);
nexttype = dwarf_fundamental_type (current_objfile, FT_INTEGER); nexttype = dwarf_fundamental_type (current_objfile, FT_INTEGER);
rangetype = create_range_type ((struct type *) NULL, nexttype, 0, 0); rangetype = create_range_type ((struct type *) NULL, nexttype, 0, 0);
typep = create_array_type ((struct type *) NULL, nexttype, rangetype); typep = create_array_type ((struct type *) NULL, nexttype, rangetype);
@ -1364,7 +1296,9 @@ dwarf_read_array_type (struct dieinfo *dip)
if (dip->at_ordering != ORD_row_major) if (dip->at_ordering != ORD_row_major)
{ {
/* FIXME: Can gdb even handle column major arrays? */ /* FIXME: Can gdb even handle column major arrays? */
complain (&not_row_major, DIE_ID, DIE_NAME); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", array not row major; not handled correctly",
DIE_ID, DIE_NAME);
} }
if ((sub = dip->at_subscr_data) != NULL) if ((sub = dip->at_subscr_data) != NULL)
{ {
@ -1394,7 +1328,7 @@ dwarf_read_array_type (struct dieinfo *dip)
{ {
/* Double ick! Not only is a type already in our slot, but /* Double ick! Not only is a type already in our slot, but
someone has decorated it. Complain and leave it alone. */ someone has decorated it. Complain and leave it alone. */
complain (&dup_user_type_definition, DIE_ID, DIE_NAME); dup_user_type_definition_complaint (DIE_ID, DIE_NAME);
} }
} }
} }
@ -1492,7 +1426,7 @@ read_tag_string_type (struct dieinfo *dip)
is a blank one. If not, complain and leave it alone. */ is a blank one. If not, complain and leave it alone. */
if (TYPE_CODE (utype) != TYPE_CODE_UNDEF) if (TYPE_CODE (utype) != TYPE_CODE_UNDEF)
{ {
complain (&dup_user_type_definition, DIE_ID, DIE_NAME); dup_user_type_definition_complaint (DIE_ID, DIE_NAME);
return; return;
} }
} }
@ -1558,7 +1492,7 @@ read_subroutine_type (struct dieinfo *dip, char *thisdie, char *enddie)
} }
else else
{ {
complain (&dup_user_type_definition, DIE_ID, DIE_NAME); dup_user_type_definition_complaint (DIE_ID, DIE_NAME);
} }
} }
@ -1774,7 +1708,8 @@ read_func_scope (struct dieinfo *dip, char *thisdie, char *enddie,
FIXME: Add code to handle AT_abstract_origin tags properly. */ FIXME: Add code to handle AT_abstract_origin tags properly. */
if (dip->at_name == NULL) if (dip->at_name == NULL)
{ {
complain (&missing_at_name, DIE_ID); complaint (&symfile_complaints, "DIE @ 0x%x, AT_name tag missing",
DIE_ID);
return; return;
} }
@ -2208,10 +2143,14 @@ locval (struct dieinfo *dip)
break; break;
case OP_DEREF2: case OP_DEREF2:
/* pop, deref and push 2 bytes (as a long) */ /* pop, deref and push 2 bytes (as a long) */
complain (&op_deref2, DIE_ID, DIE_NAME, stack[stacki]); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", OP_DEREF2 address 0x%lx not handled",
DIE_ID, DIE_NAME, stack[stacki]);
break; break;
case OP_DEREF4: /* pop, deref and push 4 bytes (as a long) */ case OP_DEREF4: /* pop, deref and push 4 bytes (as a long) */
complain (&op_deref4, DIE_ID, DIE_NAME, stack[stacki]); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", OP_DEREF4 address 0x%lx not handled",
DIE_ID, DIE_NAME, stack[stacki]);
break; break;
case OP_ADD: /* pop top 2 items, add, push result */ case OP_ADD: /* pop top 2 items, add, push result */
stack[stacki - 1] += stack[stacki]; stack[stacki - 1] += stack[stacki];
@ -2661,8 +2600,8 @@ scan_partial_symbols (char *thisdie, char *enddie, struct objfile *objfile)
temp = dbbase + di.at_sibling - dbroff; temp = dbbase + di.at_sibling - dbroff;
if ((temp < thisdie) || (temp >= enddie)) if ((temp < thisdie) || (temp >= enddie))
{ {
complain (&bad_die_ref, DIE_ID, DIE_NAME, bad_die_ref_complaint (DIE_ID, DIE_NAME,
di.at_sibling); di.at_sibling);
} }
else else
{ {
@ -3180,7 +3119,9 @@ decode_modified_type (char *modifiers, unsigned int modcount, int mtype)
} }
break; break;
default: default:
complain (&botched_modified_type, DIE_ID, DIE_NAME, mtype); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", botched modified type decoding (mtype 0x%x)",
DIE_ID, DIE_NAME, mtype);
typep = dwarf_fundamental_type (current_objfile, FT_INTEGER); typep = dwarf_fundamental_type (current_objfile, FT_INTEGER);
break; break;
} }
@ -3198,16 +3139,22 @@ decode_modified_type (char *modifiers, unsigned int modcount, int mtype)
typep = lookup_reference_type (typep); typep = lookup_reference_type (typep);
break; break;
case MOD_const: case MOD_const:
complain (&const_ignored, DIE_ID, DIE_NAME); /* FIXME */ complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", type modifier 'const' ignored", DIE_ID,
DIE_NAME); /* FIXME */
break; break;
case MOD_volatile: case MOD_volatile:
complain (&volatile_ignored, DIE_ID, DIE_NAME); /* FIXME */ complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", type modifier 'volatile' ignored",
DIE_ID, DIE_NAME); /* FIXME */
break; break;
default: default:
if (!(MOD_lo_user <= (unsigned char) modifier if (!(MOD_lo_user <= (unsigned char) modifier
&& (unsigned char) modifier <= MOD_hi_user)) && (unsigned char) modifier <= MOD_hi_user))
{ {
complain (&unknown_type_modifier, DIE_ID, DIE_NAME, modifier); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", unknown type modifier %u", DIE_ID,
DIE_NAME, modifier);
} }
break; break;
} }
@ -3349,7 +3296,9 @@ decode_fund_type (unsigned int fundtype)
typep = dwarf_fundamental_type (current_objfile, FT_INTEGER); typep = dwarf_fundamental_type (current_objfile, FT_INTEGER);
if (!(FT_lo_user <= fundtype && fundtype <= FT_hi_user)) if (!(FT_lo_user <= fundtype && fundtype <= FT_hi_user))
{ {
complain (&unexpected_fund_type, DIE_ID, DIE_NAME, fundtype); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", unexpected fundamental type 0x%x",
DIE_ID, DIE_NAME, fundtype);
} }
} }
@ -3447,7 +3396,9 @@ basicdieinfo (struct dieinfo *dip, char *diep, struct objfile *objfile)
if ((dip->die_length < SIZEOF_DIE_LENGTH) || if ((dip->die_length < SIZEOF_DIE_LENGTH) ||
((diep + dip->die_length) > (dbbase + dbsize))) ((diep + dip->die_length) > (dbbase + dbsize)))
{ {
complain (&malformed_die, DIE_ID, DIE_NAME, dip->die_length); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", malformed DIE, bad length (%ld bytes)",
DIE_ID, DIE_NAME, dip->die_length);
dip->die_length = 0; dip->die_length = 0;
} }
else if (dip->die_length < (SIZEOF_DIE_LENGTH + SIZEOF_DIE_TAG)) else if (dip->die_length < (SIZEOF_DIE_LENGTH + SIZEOF_DIE_TAG))
@ -3513,7 +3464,9 @@ completedieinfo (struct dieinfo *dip, struct objfile *objfile)
diep += SIZEOF_ATTRIBUTE; diep += SIZEOF_ATTRIBUTE;
if ((nbytes = attribute_size (attr)) == -1) if ((nbytes = attribute_size (attr)) == -1)
{ {
complain (&unknown_attribute_length, DIE_ID, DIE_NAME); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", unknown attribute length, skipped remaining attributes",
DIE_ID, DIE_NAME);
diep = end; diep = end;
continue; continue;
} }
@ -3670,7 +3623,7 @@ completedieinfo (struct dieinfo *dip, struct objfile *objfile)
diep += strlen (diep) + 1; diep += strlen (diep) + 1;
break; break;
default: default:
complain (&unknown_attribute_form, DIE_ID, DIE_NAME, form); unknown_attribute_form_complaint (DIE_ID, DIE_NAME, form);
diep = end; diep = end;
break; break;
} }
@ -3727,7 +3680,9 @@ target_to_host (char *from, int nbytes, int signextend, /* FIXME: Unused */
rtnval = bfd_get_8 (objfile->obfd, (bfd_byte *) from); rtnval = bfd_get_8 (objfile->obfd, (bfd_byte *) from);
break; break;
default: default:
complain (&no_bfd_get_N, DIE_ID, DIE_NAME, nbytes); complaint (&symfile_complaints,
"DIE @ 0x%x \"%s\", no bfd support for %d byte data object",
DIE_ID, DIE_NAME, nbytes);
rtnval = 0; rtnval = 0;
break; break;
} }
@ -3782,7 +3737,7 @@ attribute_size (unsigned int attr)
nbytes = TARGET_FT_POINTER_SIZE (objfile); nbytes = TARGET_FT_POINTER_SIZE (objfile);
break; break;
default: default:
complain (&unknown_attribute_form, DIE_ID, DIE_NAME, form); unknown_attribute_form_complaint (DIE_ID, DIE_NAME, form);
nbytes = -1; nbytes = -1;
break; break;
} }

View file

@ -52,20 +52,6 @@ struct elfinfo
asection *mdebugsect; /* Section pointer for .mdebug section */ asection *mdebugsect; /* Section pointer for .mdebug section */
}; };
/* Various things we might complain about... */
struct deprecated_complaint section_info_complaint =
{"elf/stab section information %s without a preceding file symbol", 0, 0};
struct deprecated_complaint section_info_dup_complaint =
{"duplicated elf/stab section information for %s", 0, 0};
struct deprecated_complaint stab_info_mismatch_complaint =
{"elf/stab section information missing for %s", 0, 0};
struct deprecated_complaint stab_info_questionable_complaint =
{"elf/stab section information questionable for %s", 0, 0};
static void free_elfinfo (void *); static void free_elfinfo (void *);
/* We are called once per section from elf_symfile_read. We /* We are called once per section from elf_symfile_read. We
@ -415,8 +401,9 @@ elf_symtab_read (struct objfile *objfile, int dynamic)
sizeof (*sectinfo)); sizeof (*sectinfo));
if (filesym == NULL) if (filesym == NULL)
{ {
complain (&section_info_complaint, complaint (&symfile_complaints,
sym->name); "elf/stab section information %s without a preceding file symbol",
sym->name);
} }
else else
{ {
@ -428,8 +415,9 @@ elf_symtab_read (struct objfile *objfile, int dynamic)
{ {
if (sectinfo->sections[index] != 0) if (sectinfo->sections[index] != 0)
{ {
complain (&section_info_dup_complaint, complaint (&symfile_complaints,
sectinfo->filename); "duplicated elf/stab section information for %s",
sectinfo->filename);
} }
} }
else else
@ -740,7 +728,8 @@ elfstab_offset_sections (struct objfile *objfile, struct partial_symtab *pst)
if (maybe == 0 && questionable != 0) if (maybe == 0 && questionable != 0)
{ {
complain (&stab_info_questionable_complaint, filename); complaint (&symfile_complaints,
"elf/stab section information questionable for %s", filename);
maybe = questionable; maybe = questionable;
} }
@ -757,7 +746,8 @@ elfstab_offset_sections (struct objfile *objfile, struct partial_symtab *pst)
/* We were unable to find any offsets for this file. Complain. */ /* We were unable to find any offsets for this file. Complain. */
if (dbx->stab_section_info) /* If there *is* any info, */ if (dbx->stab_section_info) /* If there *is* any info, */
complain (&stab_info_mismatch_complaint, filename); complaint (&symfile_complaints,
"elf/stab section information missing for %s", filename);
} }
/* Register that we are able to handle ELF object file formats. */ /* Register that we are able to handle ELF object file formats. */

View file

@ -1341,8 +1341,11 @@ get_destructor_fn_field (struct type *t, int *method_indexp, int *field_indexp)
This used to be coded as a macro, but I don't think it is called This used to be coded as a macro, but I don't think it is called
often enough to merit such treatment. */ often enough to merit such treatment. */
struct deprecated_complaint stub_noname_complaint = static void
{"stub type has NULL name", 0, 0}; stub_noname_complaint (void)
{
complaint (&symfile_complaints, "stub type has NULL name");
}
struct type * struct type *
check_typedef (struct type *type) check_typedef (struct type *type)
@ -1369,7 +1372,7 @@ check_typedef (struct type *type)
TYPE_TAG_NAME were separate). */ TYPE_TAG_NAME were separate). */
if (name == NULL) if (name == NULL)
{ {
complain (&stub_noname_complaint); stub_noname_complaint ();
return type; return type;
} }
sym = lookup_symbol (name, 0, STRUCT_NAMESPACE, 0, sym = lookup_symbol (name, 0, STRUCT_NAMESPACE, 0,
@ -1396,7 +1399,7 @@ check_typedef (struct type *type)
struct type *newtype; struct type *newtype;
if (name == NULL) if (name == NULL)
{ {
complain (&stub_noname_complaint); stub_noname_complaint ();
return type; return type;
} }
newtype = lookup_transparent_type (name); newtype = lookup_transparent_type (name);
@ -1414,7 +1417,7 @@ check_typedef (struct type *type)
struct symbol *sym; struct symbol *sym;
if (name == NULL) if (name == NULL)
{ {
complain (&stub_noname_complaint); stub_noname_complaint ();
return type; return type;
} }
sym = lookup_symbol (name, 0, STRUCT_NAMESPACE, 0, (struct symtab **) NULL); sym = lookup_symbol (name, 0, STRUCT_NAMESPACE, 0, (struct symtab **) NULL);
@ -1511,12 +1514,8 @@ add_mangled_type (struct extra *pextras, struct type *t)
break; break;
default: default:
{ {
complaint (&symfile_complaints, "Bad int type code length x%x",
static struct deprecated_complaint msg = tlen);
{"Bad int type code length x%x\n", 0, 0};
complain (&msg, tlen);
} }
} }
break; break;
@ -1534,9 +1533,8 @@ add_mangled_type (struct extra *pextras, struct type *t)
break; break;
default: default:
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints, "Bad float type code length x%x",
{"Bad float type code length x%x\n", 0, 0}; tlen);
complain (&msg, tlen);
} }
} }
break; break;
@ -1550,9 +1548,8 @@ add_mangled_type (struct extra *pextras, struct type *t)
break; break;
case TYPE_CODE_TYPEDEF: case TYPE_CODE_TYPEDEF:
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{"Typedefs in overloaded functions not yet supported\n", 0, 0}; "Typedefs in overloaded functions not yet supported");
complain (&msg);
} }
/* followed by type bytes & name */ /* followed by type bytes & name */
break; break;
@ -1590,9 +1587,7 @@ add_mangled_type (struct extra *pextras, struct type *t)
case TYPE_CODE_ERROR: case TYPE_CODE_ERROR:
default: default:
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints, "Unknown type code x%x", tcode);
{"Unknown type code x%x\n", 0, 0};
complain (&msg, tcode);
} }
} }
if (TYPE_TARGET_TYPE (t)) if (TYPE_TARGET_TYPE (t))

View file

@ -98,7 +98,8 @@ struct hpread_symfile_info
*NAMEP = ""; \ *NAMEP = ""; \
else if (((unsigned)(SYM)->dsfile.name) >= VT_SIZE (OBJFILE)) \ else if (((unsigned)(SYM)->dsfile.name) >= VT_SIZE (OBJFILE)) \
{ \ { \
complain (&string_table_offset_complaint, (char *) symnum); \ complaint (&symfile_complaints, "bad string table offset in symbol %d", \
(char *) symnum); \
*NAMEP = ""; \ *NAMEP = ""; \
} \ } \
else \ else \
@ -127,57 +128,20 @@ struct symloc
#define LDSYMLEN(p) (((struct symloc *)((p)->read_symtab_private))->ldsymlen) #define LDSYMLEN(p) (((struct symloc *)((p)->read_symtab_private))->ldsymlen)
#define SYMLOC(p) ((struct symloc *)((p)->read_symtab_private)) #define SYMLOC(p) ((struct symloc *)((p)->read_symtab_private))
/* FIXME: Shouldn't this stuff be in a .h file somewhere? */
/* Complaints about the symbols we have encountered. */ /* Complaints about the symbols we have encountered. */
extern struct deprecated_complaint string_table_offset_complaint; static void
extern struct deprecated_complaint lbrac_unmatched_complaint; lbrac_unmatched_complaint (int arg1)
extern struct deprecated_complaint lbrac_mismatch_complaint;
static struct deprecated_complaint hpread_unhandled_end_common_complaint =
{ {
"unhandled symbol in hp-symtab-read.c: DNTT_TYPE_COMMON/DNTT_TYPE_END.\n", 0, 0 complaint (&symfile_complaints, "unmatched N_LBRAC before symtab pos %d",
}; arg1);
}
static struct deprecated_complaint hpread_unhandled_type_complaint = static void
lbrac_mismatch_complaint (int arg1)
{ {
"hpread_type_translate: unhandled type code.", 0, 0 complaint (&symfile_complaints,
}; "N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d", arg1);
}
static struct deprecated_complaint hpread_struct_complaint =
{
"hpread_read_struct_type: expected SVAR type...", 0, 0
};
static struct deprecated_complaint hpread_array_complaint =
{
"error in hpread_array_type.", 0, 0
};
static struct deprecated_complaint hpread_type_lookup_complaint =
{
"error in hpread_type_lookup().", 0, 0
};
static struct deprecated_complaint hpread_unexpected_end_complaint =
{
"internal error in hp-symtab-read.c: Unexpected DNTT_TYPE_END kind.", 0, 0
};
static struct deprecated_complaint hpread_tagdef_complaint =
{
"error processing class tagdef", 0, 0
};
static struct deprecated_complaint hpread_unhandled_common_complaint =
{
"unhandled symbol in hp-symtab-read.c: DNTT_TYPE_COMMON.", 0, 0
};
static struct deprecated_complaint hpread_unhandled_blockdata_complaint =
{
"unhandled symbol in hp-symtab-read.c: DNTT_TYPE_BLOCKDATA.", 0, 0
};
/* To generate dumping code, uncomment this define. The dumping /* To generate dumping code, uncomment this define. The dumping
itself is controlled by routine-local statics called "dumping". */ itself is controlled by routine-local statics called "dumping". */
@ -4775,7 +4739,7 @@ hpread_type_lookup (dnttpointer hp_type, struct objfile *objfile)
dn_bufp = hpread_get_lntt (dn_bufp->dtype.type.dnttp.index, objfile); dn_bufp = hpread_get_lntt (dn_bufp->dtype.type.dnttp.index, objfile);
else else
{ {
complain (&hpread_type_lookup_complaint); complaint (&symfile_complaints, "error in hpread_type_lookup().");
return NULL; return NULL;
} }
@ -5269,7 +5233,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
/* Stack must be empty now. */ /* Stack must be empty now. */
if (context_stack_depth != 0) if (context_stack_depth != 0)
complain (&lbrac_unmatched_complaint, (char *) symnum); lbrac_unmatched_complaint ((char *) symnum);
new = push_context (0, valu); new = push_context (0, valu);
/* Built a type for the function. This includes processing /* Built a type for the function. This includes processing
@ -5387,7 +5351,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
CURRENT_FUNCTION_VALUE (objfile) = valu; CURRENT_FUNCTION_VALUE (objfile) = valu;
/* Stack must be empty now. */ /* Stack must be empty now. */
if (context_stack_depth != 0) if (context_stack_depth != 0)
complain (&lbrac_unmatched_complaint, (char *) symnum); lbrac_unmatched_complaint ((char *) symnum);
new = push_context (0, valu); new = push_context (0, valu);
/* Built a type for the function. This includes processing /* Built a type for the function. This includes processing
@ -5615,7 +5579,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
new = pop_context (); new = pop_context ();
desc = dn_bufp->dend.beginscope.dnttp.index; desc = dn_bufp->dend.beginscope.dnttp.index;
if (desc != new->depth) if (desc != new->depth)
complain (&lbrac_mismatch_complaint, (char *) symnum); lbrac_mismatch_complaint ((char *) symnum);
/* Make a block for the local symbols within. */ /* Make a block for the local symbols within. */
finish_block (new->name, &local_symbols, new->old_blocks, finish_block (new->name, &local_symbols, new->old_blocks,
@ -5633,7 +5597,8 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
case DNTT_TYPE_COMMON: case DNTT_TYPE_COMMON:
/* End a FORTRAN common block. We don't currently handle these */ /* End a FORTRAN common block. We don't currently handle these */
complain (&hpread_unhandled_end_common_complaint); complaint (&symfile_complaints,
"unhandled symbol in hp-symtab-read.c: DNTT_TYPE_COMMON/DNTT_TYPE_END.\n");
break; break;
case DNTT_TYPE_CLASS_SCOPE: case DNTT_TYPE_CLASS_SCOPE:
@ -5650,7 +5615,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
new = pop_context (); new = pop_context ();
desc = dn_bufp->dend.beginscope.dnttp.index; desc = dn_bufp->dend.beginscope.dnttp.index;
if (desc != new->depth) if (desc != new->depth)
complain (&lbrac_mismatch_complaint, (char *) symnum); lbrac_mismatch_complaint ((char *) symnum);
/* Make a block for the local symbols within. */ /* Make a block for the local symbols within. */
finish_block (new->name, &local_symbols, new->old_blocks, finish_block (new->name, &local_symbols, new->old_blocks,
new->start_addr, valu, objfile); new->start_addr, valu, objfile);
@ -5660,7 +5625,8 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
break; break;
default: default:
complain (&hpread_unexpected_end_complaint); complaint (&symfile_complaints,
"internal error in hp-symtab-read.c: Unexpected DNTT_TYPE_END kind.");
break; break;
} }
break; break;
@ -5882,7 +5848,7 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
dn_bufp = hpread_get_lntt (dn_bufp->dtag.type.dnttp.index, objfile); dn_bufp = hpread_get_lntt (dn_bufp->dtag.type.dnttp.index, objfile);
else else
{ {
complain (&hpread_tagdef_complaint); complaint (&symfile_complaints, "error processing class tagdef");
return; return;
} }
if (dn_bufp->dblock.kind == DNTT_TYPE_CLASS || if (dn_bufp->dblock.kind == DNTT_TYPE_CLASS ||
@ -5990,7 +5956,8 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
case DNTT_TYPE_COMMON: case DNTT_TYPE_COMMON:
/* FORTRAN common. Not yet handled. */ /* FORTRAN common. Not yet handled. */
complain (&hpread_unhandled_common_complaint); complaint (&symfile_complaints,
"unhandled symbol in hp-symtab-read.c: DNTT_TYPE_COMMON.");
break; break;
/* DNTT_TYPE_COBSTRUCT is not handled by GDB. */ /* DNTT_TYPE_COBSTRUCT is not handled by GDB. */
@ -6002,7 +5969,8 @@ hpread_process_one_debug_symbol (union dnttentry *dn_bufp, char *name,
/* Not sure what this is - part of FORTRAN support maybe? /* Not sure what this is - part of FORTRAN support maybe?
* Anyway, not yet handled. * Anyway, not yet handled.
*/ */
complain (&hpread_unhandled_blockdata_complaint); complaint (&symfile_complaints,
"unhandled symbol in hp-symtab-read.c: DNTT_TYPE_BLOCKDATA.");
break; break;
case DNTT_TYPE_CLASS_SCOPE: case DNTT_TYPE_CLASS_SCOPE:

View file

@ -445,12 +445,9 @@ macro_include (struct macro_source_file *source,
should tolerate bad debug info. So: should tolerate bad debug info. So:
First, squawk. */ First, squawk. */
static struct deprecated_complaint bogus_inclusion_line = { complaint (&symfile_complaints,
"both `%s' and `%s' allegedly #included at %s:%d", 0, 0 "both `%s' and `%s' allegedly #included at %s:%d", included,
}; (*link)->filename, source->filename, line);
complain (&bogus_inclusion_line,
included, (*link)->filename, source->filename, line);
/* Now, choose a new, unoccupied line number for this /* Now, choose a new, unoccupied line number for this
#inclusion, after the alleged #inclusion line. */ #inclusion, after the alleged #inclusion line. */
@ -707,15 +704,10 @@ check_for_redefinition (struct macro_source_file *source, int line,
if (! same) if (! same)
{ {
static struct deprecated_complaint macro_redefined = { complaint (&symfile_complaints,
"macro `%s' redefined at %s:%d; original definition at %s:%d", "macro `%s' redefined at %s:%d; original definition at %s:%d",
0, 0 name, source->filename, line,
}; found_key->start_file->filename, found_key->start_line);
complain (&macro_redefined,
name,
source->filename, line,
found_key->start_file->filename,
found_key->start_line);
} }
return found_key; return found_key;
@ -801,12 +793,10 @@ macro_undef (struct macro_source_file *source, int line,
if (key->end_file) if (key->end_file)
{ {
static struct deprecated_complaint double_undef = { complaint (&symfile_complaints,
"macro '%s' is #undefined twice, at %s:%d and %s:%d", "macro '%s' is #undefined twice, at %s:%d and %s:%d", name,
0, 0 source->filename, line, key->end_file->filename,
}; key->end_line);
complain (&double_undef, name, source->filename, line,
key->end_file->filename, key->end_line);
} }
/* Whatever the case, wipe out the old ending point, and /* Whatever the case, wipe out the old ending point, and
@ -820,11 +810,9 @@ macro_undef (struct macro_source_file *source, int line,
has no macro definition in scope is ignored. So we should has no macro definition in scope is ignored. So we should
ignore it too. */ ignore it too. */
#if 0 #if 0
static struct deprecated_complaint no_macro_to_undefine = { complaint (&symfile_complaints,
"no definition for macro `%s' in scope to #undef at %s:%d", "no definition for macro `%s' in scope to #undef at %s:%d",
0, 0 name, source->filename, line);
};
complain (&no_macro_to_undefine, name, source->filename, line);
#endif #endif
} }
} }

View file

@ -142,96 +142,43 @@ struct symloc
#define SC_IS_UNDEF(sc) ((sc) == scUndefined || (sc) == scSUndefined) #define SC_IS_UNDEF(sc) ((sc) == scUndefined || (sc) == scSUndefined)
/* Various complaints about symbol reading that don't abort the process */ /* Various complaints about symbol reading that don't abort the process */
static void
index_complaint (const char *arg1)
{
complaint (&symfile_complaints, "bad aux index at symbol %s", arg1);
}
static struct deprecated_complaint bad_file_number_complaint = static void
{"bad file number %d", 0, 0}; unknown_ext_complaint (const char *arg1)
{
complaint (&symfile_complaints, "unknown external symbol %s", arg1);
}
static struct deprecated_complaint index_complaint = static void
{"bad aux index at symbol %s", 0, 0}; basic_type_complaint (int arg1, const char *arg2)
{
complaint (&symfile_complaints, "cannot map ECOFF basic type 0x%x for %s",
arg1, arg2);
}
static struct deprecated_complaint aux_index_complaint = static void
{"bad proc end in aux found from symbol %s", 0, 0}; bad_tag_guess_complaint (const char *arg1)
{
complaint (&symfile_complaints, "guessed tag type of %s incorrectly", arg1);
}
static struct deprecated_complaint block_index_complaint = static void
{"bad aux index at block symbol %s", 0, 0}; bad_rfd_entry_complaint (const char *arg1, int arg2, int arg3)
{
complaint (&symfile_complaints, "bad rfd entry for %s: file %d, index %d",
arg1, arg2, arg3);
}
static struct deprecated_complaint unknown_ext_complaint = static void
{"unknown external symbol %s", 0, 0}; unexpected_type_code_complaint (const char *arg1)
{
static struct deprecated_complaint unknown_sym_complaint = complaint (&symfile_complaints, "unexpected type code for %s", arg1);
{"unknown local symbol %s", 0, 0}; }
static struct deprecated_complaint unknown_st_complaint =
{"with type %d", 0, 0};
static struct deprecated_complaint block_overflow_complaint =
{"block containing %s overfilled", 0, 0};
static struct deprecated_complaint basic_type_complaint =
{"cannot map ECOFF basic type 0x%x for %s", 0, 0};
static struct deprecated_complaint unknown_type_qual_complaint =
{"unknown type qualifier 0x%x", 0, 0};
static struct deprecated_complaint array_index_type_complaint =
{"illegal array index type for %s, assuming int", 0, 0};
static struct deprecated_complaint bad_tag_guess_complaint =
{"guessed tag type of %s incorrectly", 0, 0};
static struct deprecated_complaint block_member_complaint =
{"declaration block contains unhandled symbol type %d", 0, 0};
static struct deprecated_complaint stEnd_complaint =
{"stEnd with storage class %d not handled", 0, 0};
static struct deprecated_complaint unknown_mdebug_symtype_complaint =
{"unknown symbol type 0x%x", 0, 0};
static struct deprecated_complaint stab_unknown_complaint =
{"unknown stabs symbol %s", 0, 0};
static struct deprecated_complaint pdr_for_nonsymbol_complaint =
{"PDR for %s, but no symbol", 0, 0};
static struct deprecated_complaint pdr_static_symbol_complaint =
{"can't handle PDR for static proc at 0x%lx", 0, 0};
static struct deprecated_complaint bad_setjmp_pdr_complaint =
{"fixing bad setjmp PDR from libc", 0, 0};
static struct deprecated_complaint bad_fbitfield_complaint =
{"can't handle TIR fBitfield for %s", 0, 0};
static struct deprecated_complaint bad_continued_complaint =
{"illegal TIR continued for %s", 0, 0};
static struct deprecated_complaint bad_rfd_entry_complaint =
{"bad rfd entry for %s: file %d, index %d", 0, 0};
static struct deprecated_complaint unexpected_type_code_complaint =
{"unexpected type code for %s", 0, 0};
static struct deprecated_complaint unable_to_cross_ref_complaint =
{"unable to cross ref btTypedef for %s", 0, 0};
static struct deprecated_complaint bad_indirect_xref_complaint =
{"unable to cross ref btIndirect for %s", 0, 0};
static struct deprecated_complaint illegal_forward_tq0_complaint =
{"illegal tq0 in forward typedef for %s", 0, 0};
static struct deprecated_complaint illegal_forward_bt_complaint =
{"illegal bt %d in forward typedef for %s", 0, 0};
static struct deprecated_complaint bad_linetable_guess_complaint =
{"guessed size of linetable for %s incorrectly", 0, 0};
static struct deprecated_complaint bad_ext_ifd_complaint =
{"bad ifd for external symbol: %d (max %d)", 0, 0};
static struct deprecated_complaint bad_ext_iss_complaint =
{"bad iss for external symbol: %ld (max %ld)", 0, 0};
/* Macros and extra defs */ /* Macros and extra defs */
@ -987,7 +934,9 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
break; break;
default: default:
complain (&block_member_complaint, tsym.st); complaint (&symfile_complaints,
"declaration block contains unhandled symbol type %d",
tsym.st);
} }
} }
end_of_fields:; end_of_fields:;
@ -1273,7 +1222,8 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
; ;
} }
else else
complain (&stEnd_complaint, sh->sc); complaint (&symfile_complaints,
"stEnd with storage class %d not handled", sh->sc);
pop_parse_stack (); /* restore previous lexical context */ pop_parse_stack (); /* restore previous lexical context */
break; break;
@ -1385,7 +1335,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
case stConstant: case stConstant:
break; /* constant */ break; /* constant */
default: default:
complain (&unknown_mdebug_symtype_complaint, sh->st); complaint (&symfile_complaints, "unknown symbol type 0x%x", sh->st);
break; break;
} }
@ -1454,7 +1404,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
/* Handle corrupt aux indices. */ /* Handle corrupt aux indices. */
if (aux_index >= (debug_info->fdr + fd)->caux) if (aux_index >= (debug_info->fdr + fd)->caux)
{ {
complain (&index_complaint, sym_name); index_complaint (sym_name);
return mdebug_type_int; return mdebug_type_int;
} }
ax += aux_index; ax += aux_index;
@ -1463,7 +1413,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
(*debug_swap->swap_tir_in) (bigend, &ax->a_ti, t); (*debug_swap->swap_tir_in) (bigend, &ax->a_ti, t);
if (t->bt >= (sizeof (map_bt) / sizeof (*map_bt))) if (t->bt >= (sizeof (map_bt) / sizeof (*map_bt)))
{ {
complain (&basic_type_complaint, t->bt, sym_name); basic_type_complaint (t->bt, sym_name);
return mdebug_type_int; return mdebug_type_int;
} }
if (map_bt[t->bt]) if (map_bt[t->bt])
@ -1502,7 +1452,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
type_code = TYPE_CODE_ERROR; type_code = TYPE_CODE_ERROR;
break; break;
default: default:
complain (&basic_type_complaint, t->bt, sym_name); basic_type_complaint (t->bt, sym_name);
return mdebug_type_int; return mdebug_type_int;
} }
} }
@ -1528,7 +1478,8 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
else if (t->bt == btEnum) else if (t->bt == btEnum)
; ;
else else
complain (&bad_fbitfield_complaint, sym_name); complaint (&symfile_complaints, "can't handle TIR fBitfield for %s",
sym_name);
} }
else else
*bs = width; *bs = width;
@ -1556,7 +1507,8 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
if (rf == -1) if (rf == -1)
{ {
complain (&bad_indirect_xref_complaint, sym_name); complaint (&symfile_complaints,
"unable to cross ref btIndirect for %s", sym_name);
return mdebug_type_int; return mdebug_type_int;
} }
xref_fh = get_rfd (fd, rf); xref_fh = get_rfd (fd, rf);
@ -1596,7 +1548,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
&& TYPE_CODE (tp) != TYPE_CODE_UNION && TYPE_CODE (tp) != TYPE_CODE_UNION
&& TYPE_CODE (tp) != TYPE_CODE_ENUM) && TYPE_CODE (tp) != TYPE_CODE_ENUM)
{ {
complain (&unexpected_type_code_complaint, sym_name); unexpected_type_code_complaint (sym_name);
} }
else else
{ {
@ -1610,7 +1562,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
|| (TYPE_CODE (tp) != TYPE_CODE_ENUM || (TYPE_CODE (tp) != TYPE_CODE_ENUM
&& type_code == TYPE_CODE_ENUM)) && type_code == TYPE_CODE_ENUM))
{ {
complain (&bad_tag_guess_complaint, sym_name); bad_tag_guess_complaint (sym_name);
} }
if (TYPE_CODE (tp) != type_code) if (TYPE_CODE (tp) != type_code)
@ -1647,7 +1599,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
are corrupted. */ are corrupted. */
if (TYPE_CODE (tp) != TYPE_CODE_RANGE) if (TYPE_CODE (tp) != TYPE_CODE_RANGE)
{ {
complain (&unexpected_type_code_complaint, sym_name); unexpected_type_code_complaint (sym_name);
} }
else else
{ {
@ -1655,7 +1607,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
exception is if we guessed wrong re struct/union/enum. */ exception is if we guessed wrong re struct/union/enum. */
if (TYPE_CODE (tp) != type_code) if (TYPE_CODE (tp) != type_code)
{ {
complain (&bad_tag_guess_complaint, sym_name); bad_tag_guess_complaint (sym_name);
TYPE_CODE (tp) = type_code; TYPE_CODE (tp) = type_code;
} }
if (TYPE_NAME (tp) == NULL || !STREQ (TYPE_NAME (tp), name)) if (TYPE_NAME (tp) == NULL || !STREQ (TYPE_NAME (tp), name))
@ -1671,7 +1623,8 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
ax += cross_ref (fd, ax, &tp, type_code, &name, bigend, sym_name); ax += cross_ref (fd, ax, &tp, type_code, &name, bigend, sym_name);
if (tp == (struct type *) NULL) if (tp == (struct type *) NULL)
{ {
complain (&unable_to_cross_ref_complaint, sym_name); complaint (&symfile_complaints,
"unable to cross ref btTypedef for %s", sym_name);
tp = mdebug_type_int; tp = mdebug_type_int;
} }
} }
@ -1721,7 +1674,7 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
/* Complain for illegal continuations due to corrupt aux entries. */ /* Complain for illegal continuations due to corrupt aux entries. */
if (t->continued) if (t->continued)
complain (&bad_continued_complaint, sym_name); complaint (&symfile_complaints, "illegal TIR continued for %s", sym_name);
return tp; return tp;
} }
@ -1783,7 +1736,8 @@ upgrade_type (int fd, struct type **tpp, int tq, union aux_ext *ax, int bigend,
else due to corrupt aux entries. */ else due to corrupt aux entries. */
if (TYPE_CODE (indx) != TYPE_CODE_INT) if (TYPE_CODE (indx) != TYPE_CODE_INT)
{ {
complain (&array_index_type_complaint, sym_name); complaint (&symfile_complaints,
"illegal array index type for %s, assuming int", sym_name);
indx = mdebug_type_int; indx = mdebug_type_int;
} }
@ -1833,7 +1787,7 @@ upgrade_type (int fd, struct type **tpp, int tq, union aux_ext *ax, int bigend,
return 0; return 0;
default: default:
complain (&unknown_type_qual_complaint, tq); complaint (&symfile_complaints, "unknown type qualifier 0x%x", tq);
return 0; return 0;
} }
} }
@ -1868,7 +1822,9 @@ parse_procedure (PDR *pr, struct symtab *search_symtab,
{ {
/* Static procedure at address pr->adr. Sigh. */ /* Static procedure at address pr->adr. Sigh. */
/* FIXME-32x64. assuming pr->adr fits in long. */ /* FIXME-32x64. assuming pr->adr fits in long. */
complain (&pdr_static_symbol_complaint, (unsigned long) pr->adr); complaint (&symfile_complaints,
"can't handle PDR for static proc at 0x%lx",
(unsigned long) pr->adr);
return; return;
} }
else else
@ -1928,7 +1884,7 @@ parse_procedure (PDR *pr, struct symtab *search_symtab,
} }
else else
{ {
complain (&pdr_for_nonsymbol_complaint, sh_name); complaint (&symfile_complaints, "PDR for %s, but no symbol", sh_name);
#if 1 #if 1
return; return;
#else #else
@ -1976,7 +1932,7 @@ parse_procedure (PDR *pr, struct symtab *search_symtab,
to make backtrace through setjmp work. */ to make backtrace through setjmp work. */
if (e->pdr.pcreg == 0 && STREQ (sh_name, "setjmp")) if (e->pdr.pcreg == 0 && STREQ (sh_name, "setjmp"))
{ {
complain (&bad_setjmp_pdr_complaint, 0); complaint (&symfile_complaints, "fixing bad setjmp PDR from libc");
e->pdr.pcreg = RA_REGNUM; e->pdr.pcreg = RA_REGNUM;
e->pdr.regmask = 0x80000000; e->pdr.regmask = 0x80000000;
e->pdr.regoffset = -4; e->pdr.regoffset = -4;
@ -2173,7 +2129,9 @@ parse_lines (FDR *fh, PDR *pr, struct linetable *lt, int maxlines,
with corrupt binaries. */ with corrupt binaries. */
if (lt->nitems >= maxlines) if (lt->nitems >= maxlines)
{ {
complain (&bad_linetable_guess_complaint, fdr_name (fh)); complaint (&symfile_complaints,
"guessed size of linetable for %s incorrectly",
fdr_name (fh));
break; break;
} }
k = add_line (lt, lineno, l, k); k = add_line (lt, lineno, l, k);
@ -2182,6 +2140,14 @@ parse_lines (FDR *fh, PDR *pr, struct linetable *lt, int maxlines,
} }
} }
static void
function_outside_compilation_unit_complaint (const char *arg1)
{
complaint (&symfile_complaints,
"function `%s' appears to be defined outside of all compilation units",
arg1);
}
/* Master parsing procedure for first-pass reading of file symbols /* Master parsing procedure for first-pass reading of file symbols
into a partial_symtab. */ into a partial_symtab. */
@ -2358,13 +2324,16 @@ parse_partial_symbols (struct objfile *objfile)
external symbols. */ external symbols. */
if (ext_in->ifd < -1 || ext_in->ifd >= hdr->ifdMax) if (ext_in->ifd < -1 || ext_in->ifd >= hdr->ifdMax)
{ {
complain (&bad_ext_ifd_complaint, ext_in->ifd, hdr->ifdMax); complaint (&symfile_complaints,
"bad ifd for external symbol: %d (max %ld)", ext_in->ifd,
hdr->ifdMax);
continue; continue;
} }
if (ext_in->asym.iss < 0 || ext_in->asym.iss >= hdr->issExtMax) if (ext_in->asym.iss < 0 || ext_in->asym.iss >= hdr->issExtMax)
{ {
complain (&bad_ext_iss_complaint, ext_in->asym.iss, complaint (&symfile_complaints,
hdr->issExtMax); "bad iss for external symbol: %ld (max %ld)",
ext_in->asym.iss, hdr->issExtMax);
continue; continue;
} }
@ -2490,7 +2459,7 @@ parse_partial_symbols (struct objfile *objfile)
/* Fall through. */ /* Fall through. */
default: default:
ms_type = mst_unknown; ms_type = mst_unknown;
complain (&unknown_ext_complaint, name); unknown_ext_complaint (name);
} }
if (!ECOFF_IN_ELF (cur_bfd)) if (!ECOFF_IN_ELF (cur_bfd))
prim_record_minimal_symbol (name, svalue, ms_type, objfile); prim_record_minimal_symbol (name, svalue, ms_type, objfile);
@ -2722,9 +2691,6 @@ parse_partial_symbols (struct objfile *objfile)
switch (type_code) switch (type_code)
{ {
static struct deprecated_complaint function_outside_compilation_unit = {
"function `%s' appears to be defined outside of all compilation units", 0, 0
};
char *p; char *p;
/* /*
* Standard, external, non-debugger, symbols * Standard, external, non-debugger, symbols
@ -3127,7 +3093,7 @@ parse_partial_symbols (struct objfile *objfile)
char *name = xmalloc (name_len + 1); char *name = xmalloc (name_len + 1);
memcpy (name, namestring, name_len); memcpy (name, namestring, name_len);
name[name_len] = '\0'; name[name_len] = '\0';
complain (&function_outside_compilation_unit, name); function_outside_compilation_unit_complaint (name);
xfree (name); xfree (name);
} }
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@ -3148,7 +3114,7 @@ parse_partial_symbols (struct objfile *objfile)
char *name = xmalloc (name_len + 1); char *name = xmalloc (name_len + 1);
memcpy (name, namestring, name_len); memcpy (name, namestring, name_len);
name[name_len] = '\0'; name[name_len] = '\0';
complain (&function_outside_compilation_unit, name); function_outside_compilation_unit_complaint (name);
xfree (name); xfree (name);
} }
sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); sh.value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@ -3199,7 +3165,8 @@ parse_partial_symbols (struct objfile *objfile)
time searching to the end of every string looking for time searching to the end of every string looking for
a backslash. */ a backslash. */
complain (&unknown_symchar_complaint, p[1]); complaint (&symfile_complaints,
"unknown symbol descriptor `%c'", p[1]);
/* Ignore it; perhaps it is an extension that we don't /* Ignore it; perhaps it is an extension that we don't
know about. */ know about. */
@ -3260,8 +3227,8 @@ parse_partial_symbols (struct objfile *objfile)
default: default:
/* If we haven't found it yet, ignore it. It's probably some /* If we haven't found it yet, ignore it. It's probably some
new type we don't know about yet. */ new type we don't know about yet. */
complain (&unknown_symtype_complaint, complaint (&symfile_complaints, "unknown symbol type %s",
local_hex_string (type_code)); /*CUR_SYMBOL_TYPE*/ local_hex_string (type_code)); /*CUR_SYMBOL_TYPE*/
continue; continue;
} }
if (stabstring if (stabstring
@ -3366,7 +3333,7 @@ parse_partial_symbols (struct objfile *objfile)
{ {
/* Should not happen, but does when cross-compiling /* Should not happen, but does when cross-compiling
with the MIPS compiler. FIXME -- pull later. */ with the MIPS compiler. FIXME -- pull later. */
complain (&index_complaint, name); index_complaint (name);
new_sdx = cur_sdx + 1; /* Don't skip at all */ new_sdx = cur_sdx + 1; /* Don't skip at all */
} }
else else
@ -3379,7 +3346,9 @@ parse_partial_symbols (struct objfile *objfile)
if (new_sdx <= cur_sdx) if (new_sdx <= cur_sdx)
{ {
/* This should not happen either... FIXME. */ /* This should not happen either... FIXME. */
complain (&aux_index_complaint, name); complaint (&symfile_complaints,
"bad proc end in aux found from symbol %s",
name);
new_sdx = cur_sdx + 1; /* Don't skip backward */ new_sdx = cur_sdx + 1; /* Don't skip backward */
} }
@ -3458,7 +3427,8 @@ parse_partial_symbols (struct objfile *objfile)
if (new_sdx <= cur_sdx) if (new_sdx <= cur_sdx)
{ {
/* This happens with the Ultrix kernel. */ /* This happens with the Ultrix kernel. */
complain (&block_index_complaint, name); complaint (&symfile_complaints,
"bad aux index at block symbol %s", name);
new_sdx = cur_sdx + 1; /* Don't skip backward */ new_sdx = cur_sdx + 1; /* Don't skip backward */
} }
cur_sdx = new_sdx; cur_sdx = new_sdx;
@ -3478,8 +3448,9 @@ parse_partial_symbols (struct objfile *objfile)
default: default:
/* Both complaints are valid: one gives symbol name, /* Both complaints are valid: one gives symbol name,
the other the offending symbol type. */ the other the offending symbol type. */
complain (&unknown_sym_complaint, name); complaint (&symfile_complaints, "unknown local symbol %s",
complain (&unknown_st_complaint, sh.st); name);
complaint (&symfile_complaints, "with type %d", sh.st);
cur_sdx++; cur_sdx++;
continue; continue;
} }
@ -3548,8 +3519,7 @@ parse_partial_symbols (struct objfile *objfile)
class = LOC_LABEL; class = LOC_LABEL;
break; break;
default: default:
complain (&unknown_ext_complaint, unknown_ext_complaint (debug_info->ssext + psh->iss);
debug_info->ssext + psh->iss);
/* Fall through, pretend it's global. */ /* Fall through, pretend it's global. */
case stGlobal: case stGlobal:
/* Global common symbols are resolved by the runtime loader, /* Global common symbols are resolved by the runtime loader,
@ -3646,7 +3616,7 @@ parse_partial_symbols (struct objfile *objfile)
&rh); &rh);
if (rh < 0 || rh >= hdr->ifdMax) if (rh < 0 || rh >= hdr->ifdMax)
{ {
complain (&bad_file_number_complaint, rh); complaint (&symfile_complaints, "bad file number %ld", rh);
continue; continue;
} }
@ -3953,7 +3923,7 @@ psymtab_to_symtab_1 (struct partial_symtab *pst, char *filename)
/* These are generated by gcc-2.x, do not complain */ /* These are generated by gcc-2.x, do not complain */
; ;
else else
complain (&stab_unknown_complaint, name); complaint (&symfile_complaints, "unknown stabs symbol %s", name);
} }
if (! last_symtab_ended) if (! last_symtab_ended)
@ -4264,8 +4234,7 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp, enum type_code type_cod
{ {
/* File indirect entry is corrupt. */ /* File indirect entry is corrupt. */
*pname = "<illegal>"; *pname = "<illegal>";
complain (&bad_rfd_entry_complaint, bad_rfd_entry_complaint (sym_name, xref_fd, rn->index);
sym_name, xref_fd, rn->index);
return result; return result;
} }
@ -4289,8 +4258,7 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp, enum type_code type_cod
{ {
/* File indirect entry is corrupt. */ /* File indirect entry is corrupt. */
*pname = "<illegal>"; *pname = "<illegal>";
complain (&bad_rfd_entry_complaint, bad_rfd_entry_complaint (sym_name, xref_fd, rn->index);
sym_name, xref_fd, rn->index);
return result; return result;
} }
@ -4326,7 +4294,8 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp, enum type_code type_cod
+ fh->iauxBase + sh.index)->a_ti, + fh->iauxBase + sh.index)->a_ti,
&tir); &tir);
if (tir.tq0 != tqNil) if (tir.tq0 != tqNil)
complain (&illegal_forward_tq0_complaint, sym_name); complaint (&symfile_complaints,
"illegal tq0 in forward typedef for %s", sym_name);
switch (tir.bt) switch (tir.bt)
{ {
case btVoid: case btVoid:
@ -4363,7 +4332,9 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp, enum type_code type_cod
break; break;
default: default:
complain (&illegal_forward_bt_complaint, tir.bt, sym_name); complaint (&symfile_complaints,
"illegal bt %d in forward typedef for %s", tir.bt,
sym_name);
*tpp = init_type (type_code, 0, 0, (char *) NULL, *tpp = init_type (type_code, 0, 0, (char *) NULL,
current_objfile); current_objfile);
break; break;
@ -4445,7 +4416,8 @@ add_symbol (struct symbol *s, struct block *b)
if (b == top_stack->cur_block && if (b == top_stack->cur_block &&
nsyms >= top_stack->maxsyms) nsyms >= top_stack->maxsyms)
{ {
complain (&block_overflow_complaint, SYMBOL_NAME (s)); complaint (&symfile_complaints, "block containing %s overfilled",
SYMBOL_NAME (s));
/* In this case shrink_block is actually grow_block, since /* In this case shrink_block is actually grow_block, since
BLOCK_NSYMS(b) is larger than its current size. */ BLOCK_NSYMS(b) is larger than its current size. */
origb = b; origb = b;

View file

@ -74,15 +74,6 @@ struct objc_method {
/* Complaints about ObjC classes, selectors, etc. */ /* Complaints about ObjC classes, selectors, etc. */
static struct deprecated_complaint noclass_lookup_complaint = {
"no way to lookup Objective-C classes", 0, 0
};
static struct deprecated_complaint nosel_lookup_complaint = {
"no way to lookup Objective-C selectors", 0, 0
};
#if (!defined __GNUC__ || __GNUC__ < 2 || __GNUC_MINOR__ < (defined __cplusplus ? 6 : 4)) #if (!defined __GNUC__ || __GNUC__ < 2 || __GNUC_MINOR__ < (defined __cplusplus ? 6 : 4))
#define __CHECK_FUNCTION ((__const char *) 0) #define __CHECK_FUNCTION ((__const char *) 0)
#else #else
@ -160,7 +151,8 @@ lookup_objc_class (char *classname)
function = find_function_in_inferior("objc_lookup_class"); function = find_function_in_inferior("objc_lookup_class");
else else
{ {
complain (&noclass_lookup_complaint, 0); complaint (&symfile_complaints, "no way to lookup Objective-C classes",
0);
return 0; return 0;
} }
@ -187,7 +179,8 @@ lookup_child_selector (char *selname)
function = find_function_in_inferior("sel_get_any_uid"); function = find_function_in_inferior("sel_get_any_uid");
else else
{ {
complain (&nosel_lookup_complaint, 0); complaint (&symfile_complaints, "no way to lookup Objective-C selectors",
0);
return 0; return 0;
} }

View file

@ -820,9 +820,6 @@ net_get_symbols (ldtabl *pLoadTable)
Returns status of symbol read on target side (0=success, -1=fail) Returns status of symbol read on target side (0=success, -1=fail)
Returns -1 and complain()s if rpc fails. */ Returns -1 and complain()s if rpc fails. */
struct deprecated_complaint cant_contact_target =
{"Lost contact with VxWorks target", 0, 0};
static int static int
vx_lookup_symbol (char *name, /* symbol name */ vx_lookup_symbol (char *name, /* symbol name */
CORE_ADDR *pAddr) CORE_ADDR *pAddr)
@ -837,7 +834,7 @@ vx_lookup_symbol (char *name, /* symbol name */
xdr_SYMBOL_ADDR, &symbolAddr); xdr_SYMBOL_ADDR, &symbolAddr);
if (status != RPC_SUCCESS) if (status != RPC_SUCCESS)
{ {
complain (&cant_contact_target); complaint (&symfile_complaints, "Lost contact with VxWorks target");
return -1; return -1;
} }

View file

@ -202,47 +202,31 @@ static const char vb_name[] = "_vb$";
#define BELIEVE_PCC_PROMOTION_TYPE 0 #define BELIEVE_PCC_PROMOTION_TYPE 0
#endif #endif
static struct deprecated_complaint invalid_cpp_abbrev_complaint = static void
{"invalid C++ abbreviation `%s'", 0, 0}; invalid_cpp_abbrev_complaint (const char *arg1)
{
complaint (&symfile_complaints, "invalid C++ abbreviation `%s'", arg1);
}
static struct deprecated_complaint invalid_cpp_type_complaint = static void
{"C++ abbreviated type name unknown at symtab pos %d", 0, 0}; reg_value_complaint (int arg1, int arg2, const char *arg3)
{
complaint (&symfile_complaints,
"register number %d too large (max %d) in symbol %s", arg1, arg2,
arg3);
}
static struct deprecated_complaint member_fn_complaint = static void
{"member function type missing, got '%c'", 0, 0}; stabs_general_complaint (const char *arg1)
{
complaint (&symfile_complaints, "%s", arg1);
}
static struct deprecated_complaint const_vol_complaint = static void
{"const/volatile indicator missing, got '%c'", 0, 0}; lrs_general_complaint (const char *arg1)
{
static struct deprecated_complaint error_type_complaint = complaint (&symfile_complaints, "%s", arg1);
{"couldn't parse type; debugger out of date?", 0, 0}; }
static struct deprecated_complaint invalid_member_complaint =
{"invalid (minimal) member type data format at symtab pos %d.", 0, 0};
static struct deprecated_complaint range_type_base_complaint =
{"base type %d of range type is not defined", 0, 0};
static struct deprecated_complaint reg_value_complaint =
{"register number %d too large (max %d) in symbol %s", 0, 0};
static struct deprecated_complaint vtbl_notfound_complaint =
{"virtual function table pointer not found when defining class `%s'", 0, 0};
static struct deprecated_complaint unrecognized_cplus_name_complaint =
{"Unknown C++ symbol name `%s'", 0, 0};
static struct deprecated_complaint rs6000_builtin_complaint =
{"Unknown builtin type %d", 0, 0};
static struct deprecated_complaint unresolved_sym_chain_complaint =
{"%s: common block `%s' from global_sym_chain unresolved", 0, 0};
static struct deprecated_complaint stabs_general_complaint =
{"%s", 0, 0};
static struct deprecated_complaint lrs_general_complaint =
{"%s", 0, 0};
/* Make a list of forward references which haven't been defined. */ /* Make a list of forward references which haven't been defined. */
@ -311,11 +295,9 @@ dbx_lookup_type (int typenums[2])
if (filenum < 0 || filenum >= n_this_object_header_files) if (filenum < 0 || filenum >= n_this_object_header_files)
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{"\ "Invalid symbol data: type number (%d,%d) out of range at symtab pos %d.",
Invalid symbol data: type number (%d,%d) out of range at symtab pos %d.", filenum, index, symnum);
0, 0};
complain (&msg, filenum, index, symnum);
goto error_return; goto error_return;
} }
@ -606,6 +588,12 @@ get_cfront_method_physname (char *fname)
return p; return p;
} }
static void
msg_unknown_complaint (const char *arg1)
{
complaint (&symfile_complaints, "Unsupported token in stabs string %s", arg1);
}
/* Read base classes within cfront class definition. /* Read base classes within cfront class definition.
eg: A:ZcA;1@Bpub v2@Bvirpri;__ct__1AFv func__1AFv *sfunc__1AFv ;as__1A ;; eg: A:ZcA;1@Bpub v2@Bvirpri;__ct__1AFv func__1AFv *sfunc__1AFv ;as__1A ;;
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
@ -618,14 +606,6 @@ static int
read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type, read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type,
struct objfile *objfile) struct objfile *objfile)
{ {
static struct deprecated_complaint msg_unknown =
{"\
Unsupported token in stabs string %s.\n",
0, 0};
static struct deprecated_complaint msg_notfound =
{"\
Unable to find base type for %s.\n",
0, 0};
int bnum = 0; int bnum = 0;
char *p; char *p;
int i; int i;
@ -692,10 +672,9 @@ read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type,
/* Bad visibility format. Complain and treat it as /* Bad visibility format. Complain and treat it as
public. */ public. */
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{ "Unknown visibility `%c' for baseclass",
"Unknown visibility `%c' for baseclass", 0, 0}; new->visibility);
complain (&msg, new->visibility);
new->visibility = VISIBILITY_PUBLIC; new->visibility = VISIBILITY_PUBLIC;
} }
} }
@ -703,7 +682,7 @@ read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type,
/* "@" comes next - eg: @Bvir */ /* "@" comes next - eg: @Bvir */
if (**pp != '@') if (**pp != '@')
{ {
complain (&msg_unknown, *pp); msg_unknown_complaint (*pp);
return 1; return 1;
} }
++(*pp); ++(*pp);
@ -731,7 +710,7 @@ read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type,
bname = get_substring (pp, ';'); bname = get_substring (pp, ';');
if (!bname || !*bname) if (!bname || !*bname)
{ {
complain (&msg_unknown, *pp); msg_unknown_complaint (*pp);
return 1; return 1;
} }
/* FIXME! attach base info to type */ /* FIXME! attach base info to type */
@ -743,7 +722,8 @@ read_cfront_baseclasses (struct field_info *fip, char **pp, struct type *type,
} }
else else
{ {
complain (&msg_notfound, *pp); complaint (&symfile_complaints, "Unable to find base type for %s",
*pp);
return 1; return 1;
} }
} }
@ -810,11 +790,8 @@ read_cfront_member_functions (struct field_info *fip, char **pp,
ref_func = lookup_symbol (fname, 0, VAR_NAMESPACE, 0, 0); /* demangled name */ ref_func = lookup_symbol (fname, 0, VAR_NAMESPACE, 0, 0); /* demangled name */
if (!ref_func) if (!ref_func)
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{"\ "Unable to find function symbol for %s", fname);
Unable to find function symbol for %s\n",
0, 0};
complain (&msg, fname);
continue; continue;
} }
sublist = NULL; sublist = NULL;
@ -1070,7 +1047,7 @@ resolve_symbol_reference (struct objfile *objfile, struct symbol *sym, char *p)
ref_sym = ref_search (refnum); ref_sym = ref_search (refnum);
if (!ref_sym) if (!ref_sym)
{ {
complain (&lrs_general_complaint, "symbol for reference not found"); lrs_general_complaint ("symbol for reference not found");
return 0; return 0;
} }
@ -1106,7 +1083,7 @@ resolve_symbol_reference (struct objfile *objfile, struct symbol *sym, char *p)
sizeof (struct alias_list)); sizeof (struct alias_list));
if (!alias) if (!alias)
{ {
complain (&lrs_general_complaint, "Unable to allocate alias list memory"); lrs_general_complaint ("Unable to allocate alias list memory");
return 0; return 0;
} }
@ -1361,7 +1338,8 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
#endif #endif
default: default:
complain (&unrecognized_cplus_name_complaint, string); complaint (&symfile_complaints, "Unknown C++ symbol name `%s'",
string);
goto normal; /* Do *something* with it */ goto normal; /* Do *something* with it */
} }
} }
@ -1813,9 +1791,9 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (valu); SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (valu);
if (SYMBOL_VALUE (sym) >= NUM_REGS + NUM_PSEUDO_REGS) if (SYMBOL_VALUE (sym) >= NUM_REGS + NUM_PSEUDO_REGS)
{ {
complain (&reg_value_complaint, SYMBOL_VALUE (sym), reg_value_complaint (SYMBOL_VALUE (sym),
NUM_REGS + NUM_PSEUDO_REGS, NUM_REGS + NUM_PSEUDO_REGS,
SYMBOL_SOURCE_NAME (sym)); SYMBOL_SOURCE_NAME (sym));
SYMBOL_VALUE (sym) = SP_REGNUM; /* Known safe, though useless */ SYMBOL_VALUE (sym) = SP_REGNUM; /* Known safe, though useless */
} }
SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE; SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
@ -1829,9 +1807,9 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (valu); SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (valu);
if (SYMBOL_VALUE (sym) >= NUM_REGS + NUM_PSEUDO_REGS) if (SYMBOL_VALUE (sym) >= NUM_REGS + NUM_PSEUDO_REGS)
{ {
complain (&reg_value_complaint, SYMBOL_VALUE (sym), reg_value_complaint (SYMBOL_VALUE (sym),
NUM_REGS + NUM_PSEUDO_REGS, NUM_REGS + NUM_PSEUDO_REGS,
SYMBOL_SOURCE_NAME (sym)); SYMBOL_SOURCE_NAME (sym));
SYMBOL_VALUE (sym) = SP_REGNUM; /* Known safe, though useless */ SYMBOL_VALUE (sym) = SP_REGNUM; /* Known safe, though useless */
} }
SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE; SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
@ -2083,9 +2061,9 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (valu); SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (valu);
if (SYMBOL_VALUE (sym) >= NUM_REGS + NUM_PSEUDO_REGS) if (SYMBOL_VALUE (sym) >= NUM_REGS + NUM_PSEUDO_REGS)
{ {
complain (&reg_value_complaint, SYMBOL_VALUE (sym), reg_value_complaint (SYMBOL_VALUE (sym),
NUM_REGS + NUM_PSEUDO_REGS, NUM_REGS + NUM_PSEUDO_REGS,
SYMBOL_SOURCE_NAME (sym)); SYMBOL_SOURCE_NAME (sym));
SYMBOL_VALUE (sym) = SP_REGNUM; /* Known safe, though useless */ SYMBOL_VALUE (sym) = SP_REGNUM; /* Known safe, though useless */
} }
SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE; SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
@ -2180,7 +2158,7 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
p = strchr (p, ')'); p = strchr (p, ')');
if (!*p || *p != ')') if (!*p || *p != ')')
{ {
complain (&lrs_general_complaint, "live range format not recognized"); lrs_general_complaint ("live range format not recognized");
return NULL; return NULL;
} }
p++; p++;
@ -2201,14 +2179,14 @@ resolve_live_range (struct objfile *objfile, struct symbol *sym, char *p)
/* Sanity check the beginning of the stabs string. */ /* Sanity check the beginning of the stabs string. */
if (!*p || *p != 'l') if (!*p || *p != 'l')
{ {
complain (&lrs_general_complaint, "live range string 1"); lrs_general_complaint ("live range string 1");
return 0; return 0;
} }
p++; p++;
if (!*p || *p != '(') if (!*p || *p != '(')
{ {
complain (&lrs_general_complaint, "live range string 2"); lrs_general_complaint ("live range string 2");
return 0; return 0;
} }
p++; p++;
@ -2221,13 +2199,13 @@ resolve_live_range (struct objfile *objfile, struct symbol *sym, char *p)
start = ref_search_value (refnum); start = ref_search_value (refnum);
if (!start) if (!start)
{ {
complain (&lrs_general_complaint, "Live range symbol not found 1"); lrs_general_complaint ("Live range symbol not found 1");
return 0; return 0;
} }
if (!*p || *p != ',') if (!*p || *p != ',')
{ {
complain (&lrs_general_complaint, "live range string 3"); lrs_general_complaint ("live range string 3");
return 0; return 0;
} }
p++; p++;
@ -2240,13 +2218,13 @@ resolve_live_range (struct objfile *objfile, struct symbol *sym, char *p)
end = ref_search_value (refnum); end = ref_search_value (refnum);
if (!end) if (!end)
{ {
complain (&lrs_general_complaint, "Live range symbol not found 2"); lrs_general_complaint ("Live range symbol not found 2");
return 0; return 0;
} }
if (!*p || *p != ')') if (!*p || *p != ')')
{ {
complain (&lrs_general_complaint, "live range string 4"); lrs_general_complaint ("live range string 4");
return 0; return 0;
} }
@ -2268,7 +2246,7 @@ add_live_range (struct objfile *objfile, struct symbol *sym, CORE_ADDR start,
if (start >= end) if (start >= end)
{ {
complain (&lrs_general_complaint, "end of live range follows start"); lrs_general_complaint ("end of live range follows start");
return; return;
} }
@ -2325,7 +2303,7 @@ add_live_range (struct objfile *objfile, struct symbol *sym, CORE_ADDR start,
static struct type * static struct type *
error_type (char **pp, struct objfile *objfile) error_type (char **pp, struct objfile *objfile)
{ {
complain (&error_type_complaint); complaint (&symfile_complaints, "couldn't parse type; debugger out of date?");
while (1) while (1)
{ {
/* Skip to end of symbol. */ /* Skip to end of symbol. */
@ -2435,9 +2413,8 @@ again:
{ {
/* Complain and keep going, so compilers can invent new /* Complain and keep going, so compilers can invent new
cross-reference types. */ cross-reference types. */
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{"Unrecognized cross-reference type `%c'", 0, 0}; "Unrecognized cross-reference type `%c'", (*pp)[0]);
complain (&msg, (*pp)[0]);
code = TYPE_CODE_STRUCT; code = TYPE_CODE_STRUCT;
break; break;
} }
@ -2660,11 +2637,9 @@ again:
++*pp; ++*pp;
else else
{ {
static struct deprecated_complaint msg = { complaint (&symfile_complaints,
"Prototyped function type didn't end arguments with `#':\n%s", "Prototyped function type didn't end arguments with `#':\n%s",
0, 0 type_start);
};
complain (&msg, type_start);
} }
/* If there is just one argument whose type is `void', then /* If there is just one argument whose type is `void', then
@ -2797,7 +2772,9 @@ again:
(*pp)++; (*pp)++;
return_type = read_type (pp, objfile); return_type = read_type (pp, objfile);
if (*(*pp)++ != ';') if (*(*pp)++ != ';')
complain (&invalid_member_complaint, symnum); complaint (&symfile_complaints,
"invalid (minimal) member type data format at symtab pos %d.",
symnum);
type = allocate_stub_method (return_type); type = allocate_stub_method (return_type);
if (typenums[0] != -1) if (typenums[0] != -1)
*dbx_lookup_type (typenums) = type; *dbx_lookup_type (typenums) = type;
@ -2930,7 +2907,7 @@ rs6000_builtin_type (int typenum)
if (typenum >= 0 || typenum < -NUMBER_RECOGNIZED) if (typenum >= 0 || typenum < -NUMBER_RECOGNIZED)
{ {
complain (&rs6000_builtin_complaint, typenum); complaint (&symfile_complaints, "Unknown builtin type %d", typenum);
return builtin_type_error; return builtin_type_error;
} }
if (negative_types[-typenum] != NULL) if (negative_types[-typenum] != NULL)
@ -3288,7 +3265,8 @@ read_member_functions (struct field_info *fip, char **pp, struct type *type,
case '.': case '.':
break; break;
default: default:
complain (&const_vol_complaint, **pp); complaint (&symfile_complaints,
"const/volatile indicator missing, got '%c'", **pp);
break; break;
} }
@ -3370,7 +3348,8 @@ read_member_functions (struct field_info *fip, char **pp, struct type *type,
default: default:
/* error */ /* error */
complain (&member_fn_complaint, (*pp)[-1]); complaint (&symfile_complaints,
"member function type missing, got '%c'", (*pp)[-1]);
/* Fall through into normal member function. */ /* Fall through into normal member function. */
case '.': case '.':
@ -3635,7 +3614,9 @@ read_cpp_abbrev (struct field_info *fip, char **pp, struct type *type,
name = type_name_no_tag (context); name = type_name_no_tag (context);
if (name == NULL) if (name == NULL)
{ {
complain (&invalid_cpp_type_complaint, symnum); complaint (&symfile_complaints,
"C++ abbreviated type name unknown at symtab pos %d",
symnum);
name = "FOO"; name = "FOO";
} }
fip->list->field.name = fip->list->field.name =
@ -3643,7 +3624,7 @@ read_cpp_abbrev (struct field_info *fip, char **pp, struct type *type,
break; break;
default: default:
complain (&invalid_cpp_abbrev_complaint, *pp); invalid_cpp_abbrev_complaint (*pp);
fip->list->field.name = fip->list->field.name =
obconcat (&objfile->type_obstack, obconcat (&objfile->type_obstack,
"INVALID_CPLUSPLUS_ABBREV", "", ""); "INVALID_CPLUSPLUS_ABBREV", "", "");
@ -3656,7 +3637,7 @@ read_cpp_abbrev (struct field_info *fip, char **pp, struct type *type,
p = ++(*pp); p = ++(*pp);
if (p[-1] != ':') if (p[-1] != ':')
{ {
complain (&invalid_cpp_abbrev_complaint, *pp); invalid_cpp_abbrev_complaint (*pp);
return 0; return 0;
} }
fip->list->field.type = read_type (pp, objfile); fip->list->field.type = read_type (pp, objfile);
@ -3677,7 +3658,7 @@ read_cpp_abbrev (struct field_info *fip, char **pp, struct type *type,
} }
else else
{ {
complain (&invalid_cpp_abbrev_complaint, *pp); invalid_cpp_abbrev_complaint (*pp);
/* We have no idea what syntax an unrecognized abbrev would have, so /* We have no idea what syntax an unrecognized abbrev would have, so
better return 0. If we returned 1, we would need to at least advance better return 0. If we returned 1, we would need to at least advance
*pp to avoid an infinite loop. */ *pp to avoid an infinite loop. */
@ -3761,7 +3742,7 @@ read_one_struct_field (struct field_info *fip, char **pp, char *p,
else if (**pp != ',') else if (**pp != ',')
{ {
/* Bad structure-type format. */ /* Bad structure-type format. */
complain (&stabs_general_complaint, "bad structure-type format"); stabs_general_complaint ("bad structure-type format");
return; return;
} }
@ -3772,13 +3753,13 @@ read_one_struct_field (struct field_info *fip, char **pp, char *p,
FIELD_BITPOS (fip->list->field) = read_huge_number (pp, ',', &nbits); FIELD_BITPOS (fip->list->field) = read_huge_number (pp, ',', &nbits);
if (nbits != 0) if (nbits != 0)
{ {
complain (&stabs_general_complaint, "bad structure-type format"); stabs_general_complaint ("bad structure-type format");
return; return;
} }
FIELD_BITSIZE (fip->list->field) = read_huge_number (pp, ';', &nbits); FIELD_BITSIZE (fip->list->field) = read_huge_number (pp, ';', &nbits);
if (nbits != 0) if (nbits != 0)
{ {
complain (&stabs_general_complaint, "bad structure-type format"); stabs_general_complaint ("bad structure-type format");
return; return;
} }
} }
@ -4018,10 +3999,8 @@ read_baseclasses (struct field_info *fip, char **pp, struct type *type,
default: default:
/* Unknown character. Complain and treat it as non-virtual. */ /* Unknown character. Complain and treat it as non-virtual. */
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{ "Unknown virtual character `%c' for baseclass", **pp);
"Unknown virtual character `%c' for baseclass", 0, 0};
complain (&msg, **pp);
} }
} }
++(*pp); ++(*pp);
@ -4037,11 +4016,9 @@ read_baseclasses (struct field_info *fip, char **pp, struct type *type,
/* Bad visibility format. Complain and treat it as /* Bad visibility format. Complain and treat it as
public. */ public. */
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{ "Unknown visibility `%c' for baseclass",
"Unknown visibility `%c' for baseclass", 0, 0 new->visibility);
};
complain (&msg, new->visibility);
new->visibility = VISIBILITY_PUBLIC; new->visibility = VISIBILITY_PUBLIC;
} }
} }
@ -4147,7 +4124,9 @@ read_tilde_fields (struct field_info *fip, char **pp, struct type *type,
} }
} }
/* Virtual function table field not found. */ /* Virtual function table field not found. */
complain (&vtbl_notfound_complaint, TYPE_NAME (type)); complaint (&symfile_complaints,
"virtual function table pointer not found when defining class `%s'",
TYPE_NAME (type));
return 0; return 0;
} }
else else
@ -4210,11 +4189,8 @@ read_cfront_static_fields (struct field_info *fip, char **pp, struct type *type,
ref_static = lookup_symbol (sname, 0, VAR_NAMESPACE, 0, 0); /*demangled_name */ ref_static = lookup_symbol (sname, 0, VAR_NAMESPACE, 0, 0); /*demangled_name */
if (!ref_static) if (!ref_static)
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{"\ "Unable to find symbol for static data field %s", sname);
Unable to find symbol for static data field %s\n",
0, 0};
complain (&msg, sname);
continue; continue;
} }
stype = SYMBOL_TYPE (ref_static); stype = SYMBOL_TYPE (ref_static);
@ -4389,10 +4365,8 @@ attach_fields_to_type (struct field_info *fip, register struct type *type,
default: default:
/* Unknown visibility. Complain and treat it as public. */ /* Unknown visibility. Complain and treat it as public. */
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints, "Unknown visibility `%c' for field",
{ fip->list->visibility);
"Unknown visibility `%c' for field", 0, 0};
complain (&msg, fip->list->visibility);
} }
break; break;
} }
@ -4402,10 +4376,6 @@ attach_fields_to_type (struct field_info *fip, register struct type *type,
} }
static struct deprecated_complaint multiply_defined_struct =
{"struct/union type gets multiply defined: %s%s", 0, 0};
/* Complain that the compiler has emitted more than one definition for the /* Complain that the compiler has emitted more than one definition for the
structure type TYPE. */ structure type TYPE. */
static void static void
@ -4436,7 +4406,8 @@ complain_about_struct_wipeout (struct type *type)
kind = ""; kind = "";
} }
complain (&multiply_defined_struct, kind, name); complaint (&symfile_complaints,
"struct/union type gets multiply defined: %s%s", kind, name);
} }
@ -5138,7 +5109,8 @@ handle_true_range:
static struct type *range_type_index; static struct type *range_type_index;
complain (&range_type_base_complaint, rangenums[1]); complaint (&symfile_complaints,
"base type %d of range type is not defined", rangenums[1]);
if (range_type_index == NULL) if (range_type_index == NULL)
range_type_index = range_type_index =
init_type (TYPE_CODE_INT, TARGET_INT_BIT / TARGET_CHAR_BIT, init_type (TYPE_CODE_INT, TARGET_INT_BIT / TARGET_CHAR_BIT,
@ -5214,11 +5186,8 @@ common_block_start (char *name, struct objfile *objfile)
{ {
if (common_block_name != NULL) if (common_block_name != NULL)
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{ "Invalid symbol data: common block within common block");
"Invalid symbol data: common block within common block",
0, 0};
complain (&msg);
} }
common_block = local_symbols; common_block = local_symbols;
common_block_i = local_symbols ? local_symbols->nsyms : 0; common_block_i = local_symbols ? local_symbols->nsyms : 0;
@ -5244,9 +5213,7 @@ common_block_end (struct objfile *objfile)
if (common_block_name == NULL) if (common_block_name == NULL)
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints, "ECOMM symbol unmatched by BCOMM");
{"ECOMM symbol unmatched by BCOMM", 0, 0};
complain (&msg);
return; return;
} }
@ -5359,9 +5326,7 @@ cleanup_undefined_types (void)
if (typename == NULL) if (typename == NULL)
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints, "need a type name");
{"need a type name", 0, 0};
complain (&msg);
break; break;
} }
for (ppt = file_symbols; ppt; ppt = ppt->next) for (ppt = file_symbols; ppt; ppt = ppt->next)
@ -5384,10 +5349,9 @@ cleanup_undefined_types (void)
default: default:
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{"\ "GDB internal error. cleanup_undefined_types with bad type %d.",
GDB internal error. cleanup_undefined_types with bad type %d.", 0, 0}; TYPE_CODE (*type));
complain (&msg, TYPE_CODE (*type));
} }
break; break;
} }
@ -5547,8 +5511,9 @@ scan_file_globals (struct objfile *objfile)
if (SYMBOL_CLASS (prev) == LOC_STATIC) if (SYMBOL_CLASS (prev) == LOC_STATIC)
SYMBOL_CLASS (prev) = LOC_UNRESOLVED; SYMBOL_CLASS (prev) = LOC_UNRESOLVED;
else else
complain (&unresolved_sym_chain_complaint, complaint (&symfile_complaints,
objfile->name, SYMBOL_NAME (prev)); "%s: common block `%s' from global_sym_chain unresolved",
objfile->name, SYMBOL_NAME (prev));
} }
} }
memset (global_sym_chain, 0, sizeof (global_sym_chain)); memset (global_sym_chain, 0, sizeof (global_sym_chain));

View file

@ -128,9 +128,6 @@ EXTERN int n_this_object_header_files;
EXTERN int n_allocated_this_object_header_files; EXTERN int n_allocated_this_object_header_files;
extern struct deprecated_complaint unknown_symtype_complaint;
extern struct deprecated_complaint unknown_symchar_complaint;
extern struct type *read_type (char **, struct objfile *); extern struct type *read_type (char **, struct objfile *);
extern void cleanup_undefined_types (void); extern void cleanup_undefined_types (void);

View file

@ -150,17 +150,25 @@ struct coff_symfile_info
CORE_ADDR toc_offset; CORE_ADDR toc_offset;
}; };
static struct deprecated_complaint storclass_complaint = static void
{"Unexpected storage class: %d", 0, 0}; bf_notfound_complaint (void)
{
complaint (&symfile_complaints, "line numbers off, `.bf' symbol not found");
}
static struct deprecated_complaint bf_notfound_complaint = static void
{"line numbers off, `.bf' symbol not found", 0, 0}; ef_complaint (int arg1)
{
complaint (&symfile_complaints,
"Mismatched .ef symbol ignored starting at symnum %d", arg1);
}
static struct deprecated_complaint ef_complaint = static void
{"Mismatched .ef symbol ignored starting at symnum %d", 0, 0}; eb_complaint (int arg1)
{
static struct deprecated_complaint eb_complaint = complaint (&symfile_complaints,
{"Mismatched .eb symbol ignored starting at symnum %d", 0, 0}; "Mismatched .eb symbol ignored starting at symnum %d", arg1);
}
static void xcoff_initial_scan (struct objfile *, int); static void xcoff_initial_scan (struct objfile *, int);
@ -483,9 +491,7 @@ record_include_begin (struct coff_symbol *cs)
/* This can happen with old versions of GCC. /* This can happen with old versions of GCC.
GCC 2.3.3-930426 does not exhibit this on a test case which GCC 2.3.3-930426 does not exhibit this on a test case which
a user said produced the message for him. */ a user said produced the message for him. */
static struct deprecated_complaint msg = complaint (&symfile_complaints, "Nested C_BINCL symbols");
{"Nested C_BINCL symbols", 0, 0};
complain (&msg);
} }
++inclDepth; ++inclDepth;
@ -502,9 +508,7 @@ record_include_end (struct coff_symbol *cs)
if (inclDepth == 0) if (inclDepth == 0)
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints, "Mismatched C_BINCL/C_EINCL pair");
{"Mismatched C_BINCL/C_EINCL pair", 0, 0};
complain (&msg);
} }
allocate_include_entry (); allocate_include_entry ();
@ -766,9 +770,8 @@ enter_line_range (struct subfile *subfile, unsigned beginoffset, unsigned endoff
{ {
if (endoffset >= limit_offset) if (endoffset >= limit_offset)
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{"Bad line table offset in C_EINCL directive", 0, 0}; "Bad line table offset in C_EINCL directive");
complain (&msg);
return; return;
} }
limit_offset = endoffset; limit_offset = endoffset;
@ -864,8 +867,6 @@ static char *
xcoff_next_symbol_text (struct objfile *objfile) xcoff_next_symbol_text (struct objfile *objfile)
{ {
struct internal_syment symbol; struct internal_syment symbol;
static struct deprecated_complaint msg =
{"Unexpected symbol continuation", 0, 0};
char *retval; char *retval;
/* FIXME: is this the same as the passed arg? */ /* FIXME: is this the same as the passed arg? */
objfile = this_symtab_psymtab->objfile; objfile = this_symtab_psymtab->objfile;
@ -873,7 +874,7 @@ xcoff_next_symbol_text (struct objfile *objfile)
bfd_coff_swap_sym_in (objfile->obfd, raw_symbol, &symbol); bfd_coff_swap_sym_in (objfile->obfd, raw_symbol, &symbol);
if (symbol.n_zeroes) if (symbol.n_zeroes)
{ {
complain (&msg); complaint (&symfile_complaints, "Unexpected symbol continuation");
/* Return something which points to '\0' and hope the symbol reading /* Return something which points to '\0' and hope the symbol reading
code does something reasonable. */ code does something reasonable. */
@ -890,7 +891,7 @@ xcoff_next_symbol_text (struct objfile *objfile)
} }
else else
{ {
complain (&msg); complaint (&symfile_complaints, "Unexpected symbol continuation");
/* Return something which points to '\0' and hope the symbol reading /* Return something which points to '\0' and hope the symbol reading
code does something reasonable. */ code does something reasonable. */
@ -1282,7 +1283,7 @@ read_xcoff_symtab (struct partial_symtab *pst)
if (context_stack_depth <= 0) if (context_stack_depth <= 0)
{ /* We attempted to pop an empty context stack */ { /* We attempted to pop an empty context stack */
complain (&ef_complaint, cs->c_symnum); ef_complaint (cs->c_symnum);
within_function = 0; within_function = 0;
break; break;
} }
@ -1290,7 +1291,7 @@ read_xcoff_symtab (struct partial_symtab *pst)
/* Stack must be empty now. */ /* Stack must be empty now. */
if (context_stack_depth > 0 || new == NULL) if (context_stack_depth > 0 || new == NULL)
{ {
complain (&ef_complaint, cs->c_symnum); ef_complaint (cs->c_symnum);
within_function = 0; within_function = 0;
break; break;
} }
@ -1332,9 +1333,8 @@ read_xcoff_symtab (struct partial_symtab *pst)
case C_UNTAG: case C_UNTAG:
case C_ENTAG: case C_ENTAG:
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints, "Unrecognized storage class %d.",
{"Unrecognized storage class %d.", 0, 0}; cs->c_sclass);
complain (&msg, cs->c_sclass);
} }
break; break;
@ -1376,13 +1376,13 @@ read_xcoff_symtab (struct partial_symtab *pst)
{ {
if (context_stack_depth <= 0) if (context_stack_depth <= 0)
{ /* We attempted to pop an empty context stack */ { /* We attempted to pop an empty context stack */
complain (&eb_complaint, cs->c_symnum); eb_complaint (cs->c_symnum);
break; break;
} }
new = pop_context (); new = pop_context ();
if (depth-- != new->depth) if (depth-- != new->depth)
{ {
complain (&eb_complaint, cs->c_symnum); eb_complaint (cs->c_symnum);
break; break;
} }
if (local_symbols && context_stack_depth > 0) if (local_symbols && context_stack_depth > 0)
@ -1520,7 +1520,8 @@ process_xcoff_symbol (register struct coff_symbol *cs, struct objfile *objfile)
break; break;
default: default:
complain (&storclass_complaint, cs->c_sclass); complaint (&symfile_complaints, "Unexpected storage class: %d",
cs->c_sclass);
/* FALLTHROUGH */ /* FALLTHROUGH */
case C_DECL: case C_DECL:
@ -1603,9 +1604,7 @@ read_symbol (struct internal_syment *symbol, int symno)
->symtbl; ->symtbl;
if (symno < 0 || symno >= nsyms) if (symno < 0 || symno >= nsyms)
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints, "Invalid symbol offset");
{"Invalid symbol offset", 0, 0};
complain (&msg);
symbol->n_value = 0; symbol->n_value = 0;
symbol->n_scnum = -1; symbol->n_scnum = -1;
return; return;
@ -1647,7 +1646,7 @@ read_symbol_lineno (int symno)
if (symno < 0) if (symno < 0)
{ {
complain (&bf_notfound_complaint); bf_notfound_complaint ();
return 0; return 0;
} }
@ -1680,7 +1679,7 @@ read_symbol_lineno (int symno)
symno += symbol->n_numaux + 1; symno += symbol->n_numaux + 1;
} }
complain (&bf_notfound_complaint); bf_notfound_complaint ();
return 0; return 0;
gotit: gotit:
@ -2117,6 +2116,14 @@ swap_sym (struct internal_syment *symbol, union internal_auxent *aux,
} }
} }
static void
function_outside_compilation_unit_complaint (const char *arg1)
{
complaint (&symfile_complaints,
"function `%s' appears to be defined outside of all compilation units",
arg1);
}
static void static void
scan_xcoff_symtab (struct objfile *objfile) scan_xcoff_symtab (struct objfile *objfile)
{ {
@ -2442,9 +2449,8 @@ scan_xcoff_symtab (struct objfile *objfile)
default: default:
{ {
static struct deprecated_complaint msg = complaint (&symfile_complaints,
{"Storage class %d not recognized during scan", 0, 0}; "Storage class %d not recognized during scan", sclass);
complain (&msg, sclass);
} }
/* FALLTHROUGH */ /* FALLTHROUGH */
@ -2564,11 +2570,6 @@ scan_xcoff_symtab (struct objfile *objfile)
case C_DECL: case C_DECL:
case C_STSYM: case C_STSYM:
{ {
static struct deprecated_complaint function_outside_compilation_unit = {
"function `%s' appears to be defined outside of all compilation units", 0, 0
};
char *p; char *p;
swap_sym (&symbol, &main_aux[0], &namestring, &sraw_symbol, swap_sym (&symbol, &main_aux[0], &namestring, &sraw_symbol,
&ssymnum, objfile); &ssymnum, objfile);
@ -2748,7 +2749,7 @@ scan_xcoff_symtab (struct objfile *objfile)
char *name = xmalloc (name_len + 1); char *name = xmalloc (name_len + 1);
memcpy (name, namestring, name_len); memcpy (name, namestring, name_len);
name[name_len] = '\0'; name[name_len] = '\0';
complain (&function_outside_compilation_unit, name); function_outside_compilation_unit_complaint (name);
xfree (name); xfree (name);
} }
symbol.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); symbol.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@ -2769,7 +2770,7 @@ scan_xcoff_symtab (struct objfile *objfile)
char *name = xmalloc (name_len + 1); char *name = xmalloc (name_len + 1);
memcpy (name, namestring, name_len); memcpy (name, namestring, name_len);
name[name_len] = '\0'; name[name_len] = '\0';
complain (&function_outside_compilation_unit, name); function_outside_compilation_unit_complaint (name);
xfree (name); xfree (name);
} }
symbol.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); symbol.n_value += ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@ -2820,7 +2821,8 @@ scan_xcoff_symtab (struct objfile *objfile)
time searching to the end of every string looking for time searching to the end of every string looking for
a backslash. */ a backslash. */
complain (&unknown_symchar_complaint, p[1]); complaint (&symfile_complaints,
"unknown symbol descriptor `%c'", p[1]);
/* Ignore it; perhaps it is an extension that we don't /* Ignore it; perhaps it is an extension that we don't
know about. */ know about. */