aboutsummaryrefslogtreecommitdiff
path: root/gdb/mipsread.c
diff options
context:
space:
mode:
authorJohn Gilmore <gnu@cygnus>1993-02-02 01:53:17 +0000
committerJohn Gilmore <gnu@cygnus>1993-02-02 01:53:17 +0000
commit6edd74aef3d552b3498ec7fb3fc307c250e22cd9 (patch)
tree8186e29af0105c9fe3bc2b8b2789c3f26c0cd844 /gdb/mipsread.c
parent118a1e4d1e4f6fb0a80573d0433d4f24dbfa0605 (diff)
downloadgdb-6edd74aef3d552b3498ec7fb3fc307c250e22cd9.zip
gdb-6edd74aef3d552b3498ec7fb3fc307c250e22cd9.tar.gz
gdb-6edd74aef3d552b3498ec7fb3fc307c250e22cd9.tar.bz2
* hp300ux-nat.c: Update copyrights.
* mipsread.c (parse_partial_symbols): Complain about block indexes that go backwards. Fix from Peter Schauer. * symfile.c (syms_from_objfile, symbol_file_add): Allow a symbol-file that has no linkage symbols to be read. * tm-rs6000.h, xm-rs6000.h: (SIGWINCH_HANDLER and friends): Move from tm- file to xm-file, since they're host dependent. * valarith.c (value_binop): Typo.
Diffstat (limited to 'gdb/mipsread.c')
-rw-r--r--gdb/mipsread.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/gdb/mipsread.c b/gdb/mipsread.c
index edc0d0f..f619408 100644
--- a/gdb/mipsread.c
+++ b/gdb/mipsread.c
@@ -88,16 +88,6 @@ struct coff_exec {
struct external_aouthdr a;
};
-/* These must match the corresponding definition in gcc/config/xm-mips.h.
- At some point, these should probably go into a shared include file,
- but currently gcc and gdb do not share any directories. */
-
-#define CODE_MASK 0x8F300
-#define MIPS_IS_STAB(sym) (((sym)->index & 0xFFF00) == CODE_MASK)
-#define MIPS_MARK_STAB(code) ((code)+CODE_MASK)
-#define MIPS_UNMARK_STAB(code) ((code)-CODE_MASK)
-#define STABS_SYMBOL "@stabs"
-
/* Each partial symbol table entry contains a pointer to private data for the
read_symtab() function to use when expanding a partial symbol table entry
to a full symbol table entry.
@@ -132,6 +122,9 @@ struct complaint index_complaint =
struct complaint aux_index_complaint =
{"bad proc end in aux found from symbol %s", 0, 0};
+struct complaint block_index_complaint =
+ {"bad aux index at block symbol %s", 0, 0};
+
struct complaint unknown_ext_complaint =
{"unknown external symbol %s", 0, 0};
@@ -2105,7 +2098,14 @@ parse_partial_symbols (end_of_text_seg, objfile, section_offsets)
psymtab_language, objfile);
}
/* Skip over the block */
- cur_sdx = sh->index;
+ new_sdx = sh->index;
+ if (new_sdx <= cur_sdx)
+ {
+ /* This happens with the Ultrix kernel. */
+ complain (&block_index_complaint, name);
+ new_sdx = cur_sdx + 1; /* Don't skip backward */
+ }
+ cur_sdx = new_sdx;
continue;
case stFile: /* File headers */