aboutsummaryrefslogtreecommitdiff
path: root/gdb/buildsym.h
diff options
context:
space:
mode:
authorJohn Gilmore <gnu@cygnus>1991-10-27 22:26:02 +0000
committerJohn Gilmore <gnu@cygnus>1991-10-27 22:26:02 +0000
commit4137c5fc0d1b24d00ceec0981ea5d9da77477f0e (patch)
tree1d01de4d5f225bdcd8cc81ac88c4cc022a7c7ba2 /gdb/buildsym.h
parent9439f48f4c52cd82eca522aea847e0a330568235 (diff)
downloadgdb-4137c5fc0d1b24d00ceec0981ea5d9da77477f0e.zip
gdb-4137c5fc0d1b24d00ceec0981ea5d9da77477f0e.tar.gz
gdb-4137c5fc0d1b24d00ceec0981ea5d9da77477f0e.tar.bz2
* 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.h30
1 files changed, 11 insertions, 19 deletions
diff --git a/gdb/buildsym.h b/gdb/buildsym.h
index 7cef879..0cea60b 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