diff options
author | Jim Blandy <jimb@codesourcery.com> | 2000-02-18 22:15:46 +0000 |
---|---|---|
committer | Jim Blandy <jimb@codesourcery.com> | 2000-02-18 22:15:46 +0000 |
commit | 10696f8eb5118cdbd5afa4c239df00fc314e4ae1 (patch) | |
tree | 58c545e72c3fa7328360aca301d1479666f81ce7 /gdb/buildsym.c | |
parent | bb74f87da372e138416f285c025ed74da6607883 (diff) | |
download | gdb-10696f8eb5118cdbd5afa4c239df00fc314e4ae1.tar.gz |
* 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'.
Diffstat (limited to 'gdb/buildsym.c')
-rw-r--r-- | gdb/buildsym.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 867a5db7bcd..27dad46fb6d 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -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}; 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 */ +/* 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. */ void @@ -487,17 +501,11 @@ make_blockvector (struct objfile *objfile) if (BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i - 1)) > BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i))) { - - /* FIXME-32x64: loses if CORE_ADDR doesn't fit in a - 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. */ + CORE_ADDR start + = BLOCK_START (BLOCKVECTOR_BLOCK (blockvector, i)); 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. */ subfile = (struct subfile *) xmalloc (sizeof (struct subfile)); + memset ((char *) subfile, 0, sizeof (struct subfile)); subfile->next = subfiles; subfiles = subfile; current_subfile = subfile; |