2010-12-29 Michael Snyder <msnyder@vmware.com>

* bcache.c: Comment clean-up.
	* block.c: Ditto.
	* blockframe.c: Ditto.
	* breakpoint.c: Ditto.
	* bsd-kvm.c: Ditto.
	* buildsym.c: Ditto.
This commit is contained in:
Michael Snyder
2010-12-29 21:44:26 +00:00
parent 79676006fb
commit 4a64f543e6
7 changed files with 713 additions and 626 deletions

View File

@ -1,3 +1,12 @@
2010-12-29 Michael Snyder <msnyder@vmware.com>
* bcache.c: Comment clean-up.
* block.c: Ditto.
* blockframe.c: Ditto.
* breakpoint.c: Ditto.
* bsd-kvm.c: Ditto.
* buildsym.c: Ditto.
2010-12-29 Jie Zhang <jie.zhang@analog.com> 2010-12-29 Jie Zhang <jie.zhang@analog.com>
* configure.tgt (bfin-*-*): Set build_gdbserver to yes. * configure.tgt (bfin-*-*): Set build_gdbserver to yes.

View File

@ -97,9 +97,8 @@ struct bcache
int (*compare_function)(const void *, const void *, int length); int (*compare_function)(const void *, const void *, int length);
}; };
/* The old hash function was stolen from SDBM. This is what DB 3.0 uses now, /* The old hash function was stolen from SDBM. This is what DB 3.0
* and is better than the old one. uses now, and is better than the old one. */
*/
unsigned long unsigned long
hash(const void *addr, int length) hash(const void *addr, int length)
@ -305,12 +304,14 @@ bcache_compare (const void *addr1, const void *addr2, int length)
/* Allocated a bcache. HASH_FUNCTION and COMPARE_FUNCTION can be used /* Allocated a bcache. HASH_FUNCTION and COMPARE_FUNCTION can be used
to pass in custom hash, and compare functions to be used by this to pass in custom hash, and compare functions to be used by this
bcache. If HASH_FUNCTION is NULL hash() is used and if COMPARE_FUNCTION bcache. If HASH_FUNCTION is NULL hash() is used and if
is NULL memcmp() is used. */ COMPARE_FUNCTION is NULL memcmp() is used. */
struct bcache * struct bcache *
bcache_xmalloc (unsigned long (*hash_function)(const void *, int length), bcache_xmalloc (unsigned long (*hash_function)(const void *, int length),
int (*compare_function)(const void *, const void *, int length)) int (*compare_function)(const void *,
const void *,
int length))
{ {
/* Allocate the bcache pre-zeroed. */ /* Allocate the bcache pre-zeroed. */
struct bcache *b = XCALLOC (1, struct bcache); struct bcache *b = XCALLOC (1, struct bcache);
@ -348,7 +349,7 @@ static void
print_percentage (int portion, int total) print_percentage (int portion, int total)
{ {
if (total == 0) if (total == 0)
/* i18n: Like "Percentage of duplicates, by count: (not applicable)" */ /* i18n: Like "Percentage of duplicates, by count: (not applicable)". */
printf_filtered (_("(not applicable)\n")); printf_filtered (_("(not applicable)\n"));
else else
printf_filtered ("%3d%%\n", (int) (portion * 100.0 / total)); printf_filtered ("%3d%%\n", (int) (portion * 100.0 / total));
@ -399,7 +400,8 @@ print_bcache_statistics (struct bcache *c, char *type)
} }
} }
/* To compute the median, we need the set of chain lengths sorted. */ /* To compute the median, we need the set of chain lengths
sorted. */
qsort (chain_length, c->num_buckets, sizeof (chain_length[0]), qsort (chain_length, c->num_buckets, sizeof (chain_length[0]),
compare_positive_ints); compare_positive_ints);
qsort (entry_size, c->unique_count, sizeof (entry_size[0]), qsort (entry_size, c->unique_count, sizeof (entry_size[0]),
@ -448,7 +450,7 @@ print_bcache_statistics (struct bcache *c, char *type)
if (c->unique_count > 0) if (c->unique_count > 0)
printf_filtered ("%ld\n", c->unique_size / c->unique_count); printf_filtered ("%ld\n", c->unique_size / c->unique_count);
else else
/* i18n: "Average entry size: (not applicable)" */ /* i18n: "Average entry size: (not applicable)". */
printf_filtered (_("(not applicable)\n")); printf_filtered (_("(not applicable)\n"));
printf_filtered (_(" Median entry size: %d\n"), median_entry_size); printf_filtered (_(" Median entry size: %d\n"), median_entry_size);
printf_filtered ("\n"); printf_filtered ("\n");
@ -461,7 +463,8 @@ print_bcache_statistics (struct bcache *c, char *type)
print_percentage (c->total_size - c->structure_size, c->total_size); print_percentage (c->total_size - c->structure_size, c->total_size);
printf_filtered ("\n"); printf_filtered ("\n");
printf_filtered (_(" Hash table size: %3d\n"), c->num_buckets); printf_filtered (_(" Hash table size: %3d\n"),
c->num_buckets);
printf_filtered (_(" Hash table expands: %lu\n"), printf_filtered (_(" Hash table expands: %lu\n"),
c->expand_count); c->expand_count);
printf_filtered (_(" Hash table hashes: %lu\n"), printf_filtered (_(" Hash table hashes: %lu\n"),
@ -476,9 +479,10 @@ print_bcache_statistics (struct bcache *c, char *type)
if (c->num_buckets > 0) if (c->num_buckets > 0)
printf_filtered ("%3lu\n", c->unique_count / c->num_buckets); printf_filtered ("%3lu\n", c->unique_count / c->num_buckets);
else else
/* i18n: "Average hash chain length: (not applicable)" */ /* i18n: "Average hash chain length: (not applicable)". */
printf_filtered (_("(not applicable)\n")); printf_filtered (_("(not applicable)\n"));
printf_filtered (_(" Maximum hash chain length: %3d\n"), max_chain_length); printf_filtered (_(" Maximum hash chain length: %3d\n"),
max_chain_length);
printf_filtered ("\n"); printf_filtered ("\n");
} }

View File

@ -40,7 +40,7 @@ static void block_initialize_namespace (struct block *block,
/* Return Nonzero if block a is lexically nested within block b, /* Return Nonzero if block a is lexically nested within block b,
or if a and b have the same pc range. or if a and b have the same pc range.
Return zero otherwise. */ Return zero otherwise. */
int int
contained_in (const struct block *a, const struct block *b) contained_in (const struct block *a, const struct block *b)

View File

@ -39,8 +39,8 @@
#include "inline-frame.h" #include "inline-frame.h"
#include "psymtab.h" #include "psymtab.h"
/* Return the innermost lexical block in execution /* Return the innermost lexical block in execution in a specified
in a specified stack frame. The frame address is assumed valid. stack frame. The frame address is assumed valid.
If ADDR_IN_BLOCK is non-zero, set *ADDR_IN_BLOCK to the exact code If ADDR_IN_BLOCK is non-zero, set *ADDR_IN_BLOCK to the exact code
address we used to choose the block. We use this to find a source address we used to choose the block. We use this to find a source
@ -144,7 +144,8 @@ find_pc_sect_function (CORE_ADDR pc, struct obj_section *section)
} }
/* Return the function containing pc value PC. /* Return the function containing pc value PC.
Returns 0 if function is not known. Backward compatibility, no section */ Returns 0 if function is not known.
Backward compatibility, no section */
struct symbol * struct symbol *
find_pc_function (CORE_ADDR pc) find_pc_function (CORE_ADDR pc)
@ -153,14 +154,14 @@ find_pc_function (CORE_ADDR pc)
} }
/* These variables are used to cache the most recent result /* These variables are used to cache the most recent result
* of find_pc_partial_function. */ of find_pc_partial_function. */
static CORE_ADDR cache_pc_function_low = 0; static CORE_ADDR cache_pc_function_low = 0;
static CORE_ADDR cache_pc_function_high = 0; static CORE_ADDR cache_pc_function_high = 0;
static char *cache_pc_function_name = 0; static char *cache_pc_function_name = 0;
static struct obj_section *cache_pc_function_section = NULL; static struct obj_section *cache_pc_function_section = NULL;
/* Clear cache, e.g. when symbol table is discarded. */ /* Clear cache, e.g. when symbol table is discarded. */
void void
clear_pc_function_cache (void) clear_pc_function_cache (void)
@ -240,10 +241,10 @@ find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
} }
} }
/* Not in the normal symbol tables, see if the pc is in a known section. /* Not in the normal symbol tables, see if the pc is in a known
If it's not, then give up. This ensures that anything beyond the end section. If it's not, then give up. This ensures that anything
of the text seg doesn't appear to be part of the last function in the beyond the end of the text seg doesn't appear to be part of the
text segment. */ last function in the text segment. */
if (!section) if (!section)
msymbol = NULL; msymbol = NULL;
@ -314,7 +315,7 @@ find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
/* Because the high address is actually beyond the end of /* Because the high address is actually beyond the end of
the function (and therefore possibly beyond the end of the function (and therefore possibly beyond the end of
the overlay), we must actually convert (high - 1) and the overlay), we must actually convert (high - 1) and
then add one to that. */ then add one to that. */
*endaddr = 1 + overlay_unmapped_address (cache_pc_function_high - 1, *endaddr = 1 + overlay_unmapped_address (cache_pc_function_high - 1,
section); section);
@ -326,8 +327,8 @@ find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
return 1; return 1;
} }
/* Return the innermost stack frame executing inside of BLOCK, /* Return the innermost stack frame executing inside of BLOCK, or NULL
or NULL if there is no such frame. If BLOCK is NULL, just return NULL. */ if there is no such frame. If BLOCK is NULL, just return NULL. */
struct frame_info * struct frame_info *
block_innermost_frame (struct block *block) block_innermost_frame (struct block *block)

File diff suppressed because it is too large Load Diff

View File

@ -194,7 +194,7 @@ bsd_kvm_fetch_registers (struct target_ops *ops,
if (nl[0].n_value != 0) if (nl[0].n_value != 0)
{ {
/* Found dumppcb. If it contains a valid context, return /* Found dumppcb. If it contains a valid context, return
immediately. */ immediately. */
if (bsd_kvm_fetch_pcb (regcache, (struct pcb *) nl[0].n_value)) if (bsd_kvm_fetch_pcb (regcache, (struct pcb *) nl[0].n_value))
return; return;

View File

@ -23,7 +23,7 @@
file-reading routines. file-reading routines.
Routines to support specific debugging information formats (stabs, Routines to support specific debugging information formats (stabs,
DWARF, etc) belong somewhere else. */ DWARF, etc) belong somewhere else. */
#include "defs.h" #include "defs.h"
#include "bfd.h" #include "bfd.h"
@ -35,9 +35,9 @@
#include "gdb_assert.h" #include "gdb_assert.h"
#include "complaints.h" #include "complaints.h"
#include "gdb_string.h" #include "gdb_string.h"
#include "expression.h" /* For "enum exp_opcode" used by... */ #include "expression.h" /* For "enum exp_opcode" used by... */
#include "bcache.h" #include "bcache.h"
#include "filenames.h" /* For DOSish file names */ #include "filenames.h" /* For DOSish file names. */
#include "macrotab.h" #include "macrotab.h"
#include "demangle.h" /* Needed by SYMBOL_INIT_DEMANGLED_NAME. */ #include "demangle.h" /* Needed by SYMBOL_INIT_DEMANGLED_NAME. */
#include "block.h" #include "block.h"
@ -48,7 +48,7 @@
/* Ask buildsym.h to define the vars it normally declares `extern'. */ /* Ask buildsym.h to define the vars it normally declares `extern'. */
#define EXTERN #define EXTERN
/**/ /**/
#include "buildsym.h" /* Our own declarations */ #include "buildsym.h" /* Our own declarations. */
#undef EXTERN #undef EXTERN
/* For cleanup_undefined_types and finish_global_stabs (somewhat /* For cleanup_undefined_types and finish_global_stabs (somewhat
@ -97,9 +97,9 @@ static int compare_line_numbers (const void *ln1p, const void *ln2p);
#define INITIAL_LINE_VECTOR_LENGTH 1000 #define INITIAL_LINE_VECTOR_LENGTH 1000
/* 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. */
void void
add_free_pendings (struct pending *list) add_free_pendings (struct pending *list)
{ {
@ -127,7 +127,7 @@ add_symbol_to_list (struct symbol *symbol, struct pending **listhead)
if (symbol->ginfo.name && symbol->ginfo.name[0] == '#') if (symbol->ginfo.name && symbol->ginfo.name[0] == '#')
return; return;
/* We keep PENDINGSIZE symbols in each link of the list. If we /* We keep PENDINGSIZE symbols in each link of the list. If we
don't have a link with room in it, add a new link. */ don't have a link with room in it, add a new link. */
if (*listhead == NULL || (*listhead)->nsyms == PENDINGSIZE) if (*listhead == NULL || (*listhead)->nsyms == PENDINGSIZE)
{ {
@ -175,7 +175,7 @@ find_symbol_in_list (struct pending *list, char *name, int length)
} }
/* At end of reading syms, or in case of quit, really free as many /* At end of reading syms, or in case of quit, really free as many
`struct pending's as we can easily find. */ `struct pending's as we can easily find. */
void void
really_free_pendings (void *dummy) really_free_pendings (void *dummy)
@ -215,7 +215,7 @@ really_free_pendings (void *dummy)
} }
} }
/* This function is called to discard any pending blocks. */ /* This function is called to discard any pending blocks. */
void void
free_pending_blocks (void) free_pending_blocks (void)
@ -256,7 +256,7 @@ finish_block (struct symbol *symbol, struct pending **listhead,
BLOCK_START (block) = start; BLOCK_START (block) = start;
BLOCK_END (block) = end; BLOCK_END (block) = end;
/* Superblock filled in when containing block is made */ /* Superblock filled in when containing block is made. */
BLOCK_SUPERBLOCK (block) = NULL; BLOCK_SUPERBLOCK (block) = NULL;
BLOCK_NAMESPACE (block) = NULL; BLOCK_NAMESPACE (block) = NULL;
@ -273,7 +273,7 @@ finish_block (struct symbol *symbol, struct pending **listhead,
{ {
/* No parameter type information is recorded with the /* No parameter type information is recorded with the
function's type. Set that from the type of the function's type. Set that from the type of the
parameter symbols. */ parameter symbols. */
int nparams = 0, iparams; int nparams = 0, iparams;
struct symbol *sym; struct symbol *sym;
ALL_BLOCK_SYMBOLS (block, iter, sym) ALL_BLOCK_SYMBOLS (block, iter, sym)
@ -319,7 +319,7 @@ finish_block (struct symbol *symbol, struct pending **listhead,
*listhead = NULL; *listhead = NULL;
/* Check to be sure that the blocks have an end address that is /* Check to be sure that the blocks have an end address that is
greater than starting address */ greater than starting address. */
if (BLOCK_END (block) < BLOCK_START (block)) if (BLOCK_END (block) < BLOCK_START (block))
{ {
@ -336,7 +336,7 @@ finish_block (struct symbol *symbol, struct pending **listhead,
paddress (gdbarch, BLOCK_END (block)), paddress (gdbarch, BLOCK_END (block)),
paddress (gdbarch, BLOCK_START (block))); paddress (gdbarch, BLOCK_START (block)));
} }
/* Better than nothing */ /* Better than nothing. */
BLOCK_END (block) = BLOCK_START (block); BLOCK_END (block) = BLOCK_START (block);
} }
@ -351,7 +351,7 @@ finish_block (struct symbol *symbol, struct pending **listhead,
if (BLOCK_SUPERBLOCK (pblock->block) == NULL) if (BLOCK_SUPERBLOCK (pblock->block) == NULL)
{ {
/* Check to be sure the blocks are nested as we receive /* Check to be sure the blocks are nested as we receive
them. If the compiler/assembler/linker work, this just them. If the compiler/assembler/linker work, this just
burns a small amount of time. burns a small amount of time.
Skip blocks which correspond to a function; they're not Skip blocks which correspond to a function; they're not
@ -473,9 +473,9 @@ make_blockvector (struct objfile *objfile)
(sizeof (struct blockvector) (sizeof (struct blockvector)
+ (i - 1) * sizeof (struct block *))); + (i - 1) * sizeof (struct block *)));
/* Copy the blocks into the blockvector. This is done in reverse /* Copy the blocks into the blockvector. This is done in reverse
order, which happens to put the blocks into the proper order order, which happens to put the blocks into the proper order
(ascending starting address). finish_block has hair to insert (ascending starting address). finish_block has hair to insert
each block into the list after its subblocks in order to make each block into the list after its subblocks in order to make
sure this is true. */ sure this is true. */
@ -496,7 +496,7 @@ make_blockvector (struct objfile *objfile)
BLOCKVECTOR_MAP (blockvector) = 0; BLOCKVECTOR_MAP (blockvector) = 0;
/* Some compilers output blocks in the wrong order, but we depend on /* Some compilers output blocks in the wrong order, but we depend on
their being in the right order so we can binary search. Check the their being in the right order so we can binary search. Check the
order and moan about it. */ order and moan about it. */
if (BLOCKVECTOR_NBLOCKS (blockvector) > 1) if (BLOCKVECTOR_NBLOCKS (blockvector) > 1)
{ {
@ -520,7 +520,8 @@ make_blockvector (struct objfile *objfile)
/* Start recording information about source code that came from an /* Start recording information about source code that came from an
included (or otherwise merged-in) source file with a different included (or otherwise merged-in) source file with a different
name. NAME is the name of the file (cannot be NULL), DIRNAME is name. NAME is the name of the file (cannot be NULL), DIRNAME is
the directory in which the file was compiled (or NULL if not known). */ the directory in which the file was compiled (or NULL if not
known). */
void void
start_subfile (const char *name, const char *dirname) start_subfile (const char *name, const char *dirname)
@ -555,7 +556,7 @@ start_subfile (const char *name, const char *dirname)
xfree (subfile_name); xfree (subfile_name);
} }
/* This subfile is not known. Add an entry for it. Make an entry /* This subfile is not known. Add an entry for it. Make an entry
for this subfile in the list of all subfiles of the current main for this subfile in the list of all subfiles of the current main
source file. */ source file. */
@ -565,7 +566,7 @@ start_subfile (const char *name, const char *dirname)
subfiles = subfile; subfiles = subfile;
current_subfile = subfile; current_subfile = subfile;
/* Save its name and compilation directory name */ /* Save its name and compilation directory name. */
subfile->name = (name == NULL) ? NULL : xstrdup (name); subfile->name = (name == NULL) ? NULL : xstrdup (name);
subfile->dirname = (dirname == NULL) ? NULL : xstrdup (dirname); subfile->dirname = (dirname == NULL) ? NULL : xstrdup (dirname);
@ -581,7 +582,7 @@ start_subfile (const char *name, const char *dirname)
language then as well, but it is too late for us to use that language then as well, but it is too late for us to use that
information while reading symbols, since symtabs aren't allocated information while reading symbols, since symtabs aren't allocated
until after all the symbols have been processed for a given until after all the symbols have been processed for a given
source file. */ source file. */
subfile->language = deduce_language_from_filename (subfile->name); subfile->language = deduce_language_from_filename (subfile->name);
if (subfile->language == language_unknown if (subfile->language == language_unknown
@ -591,7 +592,7 @@ start_subfile (const char *name, const char *dirname)
} }
/* Initialize the debug format string to NULL. We may supply it /* Initialize the debug format string to NULL. We may supply it
later via a call to record_debugformat. */ later via a call to record_debugformat. */
subfile->debugformat = NULL; subfile->debugformat = NULL;
/* Similarly for the producer. */ /* Similarly for the producer. */
@ -633,7 +634,7 @@ start_subfile (const char *name, const char *dirname)
value to dirname and remembering the new name. Some sanity value to dirname and remembering the new name. Some sanity
checking is performed to ensure that the state of the subfile checking is performed to ensure that the state of the subfile
struct is reasonable and that the old name we are assuming to be a struct is reasonable and that the old name we are assuming to be a
directory name actually is (by checking for a trailing '/'). */ directory name actually is (by checking for a trailing '/'). */
void void
patch_subfile_names (struct subfile *subfile, char *name) patch_subfile_names (struct subfile *subfile, char *name)
@ -654,7 +655,7 @@ patch_subfile_names (struct subfile *subfile, char *name)
are allocated we try to deduce a language then as well, but are allocated we try to deduce a language then as well, but
it is too late for us to use that information while reading it is too late for us to use that information while reading
symbols, since symtabs aren't allocated until after all the symbols, since symtabs aren't allocated until after all the
symbols have been processed for a given source file. */ symbols have been processed for a given source file. */
subfile->language = deduce_language_from_filename (subfile->name); subfile->language = deduce_language_from_filename (subfile->name);
if (subfile->language == language_unknown if (subfile->language == language_unknown
@ -680,7 +681,8 @@ push_subfile (void)
subfile_stack = tem; subfile_stack = tem;
if (current_subfile == NULL || current_subfile->name == NULL) if (current_subfile == NULL || current_subfile->name == NULL)
{ {
internal_error (__FILE__, __LINE__, _("failed internal consistency check")); internal_error (__FILE__, __LINE__,
_("failed internal consistency check"));
} }
tem->name = current_subfile->name; tem->name = current_subfile->name;
} }
@ -825,14 +827,14 @@ start_symtab (char *name, char *dirname, CORE_ADDR start_addr)
start_subfile (name, dirname); start_subfile (name, dirname);
} }
/* Subroutine of end_symtab to simplify it. /* Subroutine of end_symtab to simplify it. Look for a subfile that
Look for a subfile that matches the main source file's basename. matches the main source file's basename. If there is only one, and
If there is only one, and if the main source file doesn't have any if the main source file doesn't have any symbol or line number
symbol or line number information, then copy this file's symtab and information, then copy this file's symtab and line_vector to the
line_vector to the main source file's subfile and discard the other subfile. main source file's subfile and discard the other subfile. This can
This can happen because of a compiler bug or from the user playing games happen because of a compiler bug or from the user playing games
with #line or from things like a distributed build system that manipulates with #line or from things like a distributed build system that
the debug info. */ manipulates the debug info. */
static void static void
watch_main_source_file_lossage (void) watch_main_source_file_lossage (void)
@ -849,10 +851,12 @@ watch_main_source_file_lossage (void)
mainsub = subfile; mainsub = subfile;
} }
/* If the main source file doesn't have any line number or symbol info, /* If the main source file doesn't have any line number or symbol
look for an alias in another subfile. info, look for an alias in another subfile.
We have to watch for mainsub == NULL here. It's a quirk of end_symtab,
it can return NULL so there may not be a main subfile. */ We have to watch for mainsub == NULL here. It's a quirk of
end_symtab, it can return NULL so there may not be a main
subfile. */
if (mainsub if (mainsub
&& mainsub->line_vector == NULL && mainsub->line_vector == NULL
@ -928,7 +932,7 @@ block_compar (const void *ap, const void *bp)
TAG_compile_unit DIE. This can happen when we link in an object TAG_compile_unit DIE. This can happen when we link in an object
file that was compiled from an empty source file. Returning NULL file that was compiled from an empty source file. Returning NULL
is probably not the correct thing to do, because then gdb will is probably not the correct thing to do, because then gdb will
never know about this empty file (FIXME). */ never know about this empty file (FIXME). */
struct symtab * struct symtab *
end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section) end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
@ -1017,10 +1021,10 @@ end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
{ {
/* Define the STATIC_BLOCK & GLOBAL_BLOCK, and build the /* Define the STATIC_BLOCK & GLOBAL_BLOCK, and build the
blockvector. */ blockvector. */
finish_block (0, &file_symbols, 0, last_source_start_addr, end_addr, finish_block (0, &file_symbols, 0, last_source_start_addr,
objfile); end_addr, objfile);
finish_block (0, &global_symbols, 0, last_source_start_addr, end_addr, finish_block (0, &global_symbols, 0, last_source_start_addr,
objfile); end_addr, objfile);
blockvector = make_blockvector (objfile); blockvector = make_blockvector (objfile);
} }
@ -1041,7 +1045,7 @@ end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
int linetablesize = 0; int linetablesize = 0;
symtab = NULL; symtab = NULL;
/* If we have blocks of symbols, make a symtab. Otherwise, just /* If we have blocks of symbols, make a symtab. Otherwise, just
ignore this file and any line number info in it. */ ignore this file and any line number info in it. */
if (blockvector) if (blockvector)
{ {
@ -1070,7 +1074,7 @@ end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
symtab->macro_table = pending_macros; symtab->macro_table = pending_macros;
if (subfile->line_vector) if (subfile->line_vector)
{ {
/* Reallocate the line table on the symbol obstack */ /* Reallocate the line table on the symbol obstack. */
symtab->linetable = (struct linetable *) symtab->linetable = (struct linetable *)
obstack_alloc (&objfile->objfile_obstack, linetablesize); obstack_alloc (&objfile->objfile_obstack, linetablesize);
memcpy (symtab->linetable, subfile->line_vector, linetablesize); memcpy (symtab->linetable, subfile->line_vector, linetablesize);
@ -1082,7 +1086,7 @@ end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
symtab->block_line_section = section; symtab->block_line_section = section;
if (subfile->dirname) if (subfile->dirname)
{ {
/* Reallocate the dirname on the symbol obstack */ /* Reallocate the dirname on the symbol obstack. */
symtab->dirname = (char *) symtab->dirname = (char *)
obstack_alloc (&objfile->objfile_obstack, obstack_alloc (&objfile->objfile_obstack,
strlen (subfile->dirname) + 1); strlen (subfile->dirname) + 1);
@ -1100,10 +1104,10 @@ end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
from the filename. We already did our own deducing when from the filename. We already did our own deducing when
we created the subfile, and we may have altered our we created the subfile, and we may have altered our
opinion of what language it is from things we found in opinion of what language it is from things we found in
the symbols. */ the symbols. */
symtab->language = subfile->language; symtab->language = subfile->language;
/* Save the debug format string (if any) in the symtab */ /* Save the debug format string (if any) in the symtab. */
if (subfile->debugformat != NULL) if (subfile->debugformat != NULL)
{ {
symtab->debugformat = obsavestring (subfile->debugformat, symtab->debugformat = obsavestring (subfile->debugformat,
@ -1190,8 +1194,8 @@ end_symtab (CORE_ADDR end_addr, struct objfile *objfile, int section)
struct symbol *sym; struct symbol *sym;
struct dict_iterator iter; struct dict_iterator iter;
/* Inlined functions may have symbols not in the global or static /* Inlined functions may have symbols not in the global or
symbol lists. */ static symbol lists. */
if (BLOCK_FUNCTION (block) != NULL) if (BLOCK_FUNCTION (block) != NULL)
if (SYMBOL_SYMTAB (BLOCK_FUNCTION (block)) == NULL) if (SYMBOL_SYMTAB (BLOCK_FUNCTION (block)) == NULL)
SYMBOL_SYMTAB (BLOCK_FUNCTION (block)) = symtab; SYMBOL_SYMTAB (BLOCK_FUNCTION (block)) = symtab;
@ -1250,7 +1254,7 @@ push_context (int desc, CORE_ADDR valu)
} }
/* Pop a context block. Returns the address of the context block just /* Pop a context block. Returns the address of the context block just
popped. */ popped. */
struct context_stack * struct context_stack *
pop_context (void) pop_context (void)
@ -1261,7 +1265,7 @@ pop_context (void)
/* Compute a small integer hash code for the given name. */ /* Compute a small integer hash code for the given name. */
int int
hashname (char *name) hashname (char *name)
@ -1293,7 +1297,7 @@ record_producer (const char *producer)
free_pendings list. Caller must set SRCLIST to a null list after free_pendings list. Caller must set SRCLIST to a null list after
calling this function. calling this function.
Void return. */ Void return. */
void void
merge_symbol_lists (struct pending **srclist, struct pending **targetlist) merge_symbol_lists (struct pending **srclist, struct pending **targetlist)