* buildsym.h (add_free_pendings): Declare.

* buildsym.c (add_free_pendings): New function.
(make_blockvector): 32x64 fix using longest_local_hex_string().
(start_subfile): initialize variable 'subfile'.
This commit is contained in:
Jim Blandy 2000-02-18 22:15:46 +00:00
parent 8c8281f46f
commit 59527da01e
2 changed files with 21 additions and 10 deletions

View file

@ -81,10 +81,24 @@ struct complaint innerblock_anon_complaint =
{"inner block (0x%lx-0x%lx) not inside outer block (0x%lx-0x%lx)", 0, 0}; {"inner block (0x%lx-0x%lx) not inside outer block (0x%lx-0x%lx)", 0, 0};
struct complaint blockvector_complaint = struct complaint blockvector_complaint =
{"block at 0x%lx out of order", 0, 0}; {"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. */
void
add_free_pendings (struct pending *list)
{
register struct pending *link = list;
if (list)
{
while (link->next) link = link->next;
link->next = free_pendings;
free_pendings = list;
}
}
/* Add a symbol to one of the lists of symbols. */ /* Add a symbol to one of the lists of symbols. */
void void
@ -487,17 +501,11 @@ make_blockvector (struct objfile *objfile)
if (BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i - 1)) if (BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i - 1))
> BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i))) > BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i)))
{ {
CORE_ADDR start
/* FIXME-32x64: loses if CORE_ADDR doesn't fit in a = BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i));
long. Possible solutions include a version of
complain which takes a callback, a
sprintf_address_numeric to match
print_address_numeric, or a way to set up a UI_FILE
which causes sprintf rather than fprintf to be
called. */
complain (&blockvector_complaint, complain (&blockvector_complaint,
(unsigned long) BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i))); longest_local_hex_string ((LONGEST) start));
} }
} }
} }
@ -533,6 +541,7 @@ start_subfile (char *name, char *dirname)
source file. */ source file. */
subfile = (struct subfile *) xmalloc (sizeof (struct subfile)); subfile = (struct subfile *) xmalloc (sizeof (struct subfile));
memset ((char *) subfile, 0, sizeof (struct subfile));
subfile->next = subfiles; subfile->next = subfiles;
subfiles = subfile; subfiles = subfile;
current_subfile = subfile; current_subfile = subfile;

View file

@ -231,6 +231,8 @@ EXTERN int type_vector_length;
#define INITIAL_TYPE_VECTOR_LENGTH 160 #define INITIAL_TYPE_VECTOR_LENGTH 160
extern void add_free_pendings (struct pending *list);
extern void add_symbol_to_list (struct symbol *symbol, extern void add_symbol_to_list (struct symbol *symbol,
struct pending **listhead); struct pending **listhead);