* 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:
parent
8c8281f46f
commit
59527da01e
2 changed files with 21 additions and 10 deletions
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue