From 963dbabee775d054e675f63bb6535723d49a14a7 Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Wed, 20 Apr 1994 17:07:11 +0000 Subject: [PATCH] * xcoffread.c (xcoff_next_symbol_text): Don't return before updating raw_symbol and symnum. Return a value in the case where we complained. --- gdb/ChangeLog | 4 ++++ gdb/xcoffread.c | 26 +++++++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index acf2aef90d1..390b5916dec 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ Wed Apr 20 08:37:16 1994 Jim Kingdon (kingdon@lioth.cygnus.com) + * xcoffread.c (xcoff_next_symbol_text): Don't return before + updating raw_symbol and symnum. Return a value in the case where + we complained. + * dstread.c, coffread.c: Don't define pending_blocks; buildsym.c takes care of it. * parse.c: Don't define block_found; it is defined in symtab.c. diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index 7d93098fc82..de8f77ac46e 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -983,16 +983,32 @@ xcoff_next_symbol_text () struct internal_syment symbol; static struct complaint msg = {"Unexpected symbol continuation", 0, 0}; + char *retval; bfd_coff_swap_sym_in (current_objfile->obfd, raw_symbol, &symbol); if (symbol.n_zeroes) - complain (&msg); + { + complain (&msg); + + /* Return something which points to '\0' and hope the symbol reading + code does something reasonable. */ + retval = ""; + } else if (symbol.n_sclass & 0x80) - return debugsec + symbol.n_offset; + { + retval = debugsec + symbol.n_offset; + raw_symbol += coff_data (current_objfile->obfd)->local_symesz; + ++symnum; + } else - complain (&msg); - raw_symbol += coff_data (current_objfile->obfd)->local_symesz; - ++symnum; + { + complain (&msg); + + /* Return something which points to '\0' and hope the symbol reading + code does something reasonable. */ + retval = ""; + } + return retval; } /* read the whole symbol table of a given bfd. */ -- 2.30.2