diff options
author | John Gilmore <gnu@cygnus> | 1991-10-27 22:26:02 +0000 |
---|---|---|
committer | John Gilmore <gnu@cygnus> | 1991-10-27 22:26:02 +0000 |
commit | 4137c5fc0d1b24d00ceec0981ea5d9da77477f0e (patch) | |
tree | 1d01de4d5f225bdcd8cc81ac88c4cc022a7c7ba2 /gdb/buildsym.h | |
parent | 9439f48f4c52cd82eca522aea847e0a330568235 (diff) | |
download | binutils-gdb-4137c5fc0d1b24d00ceec0981ea5d9da77477f0e.tar.gz |
* buildsym.c: Break out initial malloc sizes.
(record_line): Record directly in a subfile. Alloc on demand.
(compare_line_numbers): Add from xcoffread.c.
(end_symtab): New params say whether to sort pendings and
linetable. Patch block stabs if defined. Shrink linetable before
allocating the symtab.
* buildsym.h: Delete line_vector* and prev_line_number. Add
global_stabs and file_stabs for xcoffread.
* dbxread.c (start_subfile): Move to buildsym. Change above calls.
* symtab.h: LINETABLE(symtab) can now be null. Zap LINELIST.
* symmisc.c, symtab.c: Cope with null LINETABLEs.
Diffstat (limited to 'gdb/buildsym.h')
-rw-r--r-- | gdb/buildsym.h | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/gdb/buildsym.h b/gdb/buildsym.h index 7cef879c0f3..0cea60bcfe0 100644 --- a/gdb/buildsym.h +++ b/gdb/buildsym.h @@ -47,6 +47,7 @@ extern void finish_block (); extern struct blockvector *make_blockvector (); extern void add_undefined_type (); extern void really_free_pendings (); +extern void start_subfile (); extern struct symtab *end_symtab (); extern void scan_file_globals (); extern void buildsym_new_init (); @@ -79,8 +80,6 @@ struct subfile char *dirname; struct linetable *line_vector; int line_vector_length; - int line_vector_index; - int prev_line_number; }; EXTERN struct subfile *subfiles; @@ -108,22 +107,6 @@ EXTERN struct type **type_vector; EXTERN int type_vector_length; -/* Vector of line number information. */ - -EXTERN struct linetable *line_vector; - -/* Index of next entry to go in line_vector_index. */ - -EXTERN int line_vector_index; - -/* Last line number recorded in the line vector. */ - -EXTERN int prev_line_number; - -/* Number of elements allocated for line_vector currently. */ - -EXTERN int line_vector_length; - /* Hash table of global symbols whose values are not known yet. They are chained thru the SYMBOL_VALUE_CHAIN, since we don't have the correct data for that slot yet. */ @@ -155,7 +138,16 @@ EXTERN struct pending *file_symbols; /* static at top level, and types */ EXTERN struct pending *global_symbols; /* global functions and variables */ -EXTERN struct pending *local_symbols; /* everything local to lexical context */ +EXTERN struct pending *local_symbols; /* everything local to lexic context */ + +/* Kludge for xcoffread.c */ +struct pending_stabs { + int count, length; + char *stab[1]; +}; + +EXTERN struct pending_stabs *global_stabs; +EXTERN struct pending_stabs *file_stabs; /* List of symbols declared since the last BCOMM. This list is a tail of local_symbols. When ECOMM is seen, the symbols on the list |