From 2150c3ef045a525b1d74c06eb8b0811621f264e3 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 20 May 2018 11:13:12 -0600 Subject: [PATCH] Move some code from buildsym to stabsread A few things that currently reside in buildsym.c turn out to be specific to the stabs reader. This patch moves these from buildsym.[ch] to stabsread.[ch]. gdb/ChangeLog 2018-07-16 Tom Tromey * stabsread.h (HASHSIZE, hashname, symnum, next_symbol_text) (next_symbol_text_func): Move from buildsym.h. * stabsread.c (hashname): Move from buildsym.c. * buildsym.h (HASHSIZE, symnum, next_symbol_text) (next_symbol_text_func, hashname): Move to stabsread.h. * buildsym.c: Don't include bcache.h (hashname): Move to stasbread.c. --- gdb/ChangeLog | 10 ++++++++++ gdb/buildsym.c | 10 ---------- gdb/buildsym.h | 15 --------------- gdb/stabsread.c | 9 +++++++++ gdb/stabsread.h | 17 +++++++++++++++++ 5 files changed, 36 insertions(+), 25 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 39936a4..ad72cd8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,15 @@ 2018-07-16 Tom Tromey + * stabsread.h (HASHSIZE, hashname, symnum, next_symbol_text) + (next_symbol_text_func): Move from buildsym.h. + * stabsread.c (hashname): Move from buildsym.c. + * buildsym.h (HASHSIZE, symnum, next_symbol_text) + (next_symbol_text_func, hashname): Move to stabsread.h. + * buildsym.c: Don't include bcache.h + (hashname): Move to stasbread.c. + +2018-07-16 Tom Tromey + * buildsym.h (context_stack_size): Don't declare. * buildsym.c (context_stack_size): New global. diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 26c5110..f2176e2 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -74,7 +74,6 @@ #include "gdbtypes.h" #include "complaints.h" #include "expression.h" /* For "enum exp_opcode" used by... */ -#include "bcache.h" #include "filenames.h" /* For DOSish file names. */ #include "macrotab.h" #include "demangle.h" /* Needed by SYMBOL_INIT_DEMANGLED_NAME. */ @@ -1667,15 +1666,6 @@ pop_context (void) -/* Compute a small integer hash code for the given name. */ - -int -hashname (const char *name) -{ - return (hash(name,strlen(name)) % HASHSIZE); -} - - void record_debugformat (const char *format) { diff --git a/gdb/buildsym.h b/gdb/buildsym.h index 191db8c..0b19c39 100644 --- a/gdb/buildsym.h +++ b/gdb/buildsym.h @@ -46,9 +46,6 @@ struct dynamic_prop; #define EXTERN extern #endif -#define HASHSIZE 127 /* Size of things hashed via - hashname(). */ - /* The list of sub-source-files within the current individual compilation. Each file gets its own symtab with its own linetable and associated info, but they all share one blockvector. */ @@ -74,10 +71,6 @@ EXTERN struct subfile *current_subfile; EXTERN unsigned char processing_gcc_compilation; -/* Count symbols as they are processed, for error messages. */ - -EXTERN unsigned int symnum; - /* Record the symbols defined for each context in a list. We don't create a struct block for the context until we know how long to make it. */ @@ -173,12 +166,6 @@ typedef void (record_line_ftype) (struct subfile *subfile, int line, -#define next_symbol_text(objfile) (*next_symbol_text_func)(objfile) - -/* Function to invoke get the next symbol. Return the symbol name. */ - -EXTERN const char *(*next_symbol_text_func) (struct objfile *); - extern void add_symbol_to_list (struct symbol *symbol, struct pending **listhead); @@ -251,8 +238,6 @@ extern struct compunit_symtab *start_symtab (struct objfile *objfile, extern void restart_symtab (struct compunit_symtab *cust, const char *name, CORE_ADDR start_addr); -extern int hashname (const char *name); - extern void free_pending_blocks (void); /* Record the name of the debug format in the current pending symbol diff --git a/gdb/stabsread.c b/gdb/stabsread.c index ed4a3d3..e4513c6 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -44,6 +44,7 @@ #include "target-float.h" #include "cp-abi.h" #include "cp-support.h" +#include "bcache.h" #include /* Ask stabsread.h to define the vars it normally declares `extern'. */ @@ -4814,6 +4815,14 @@ find_name_end (const char *name) } } +/* See stabsread.h. */ + +int +hashname (const char *name) +{ + return hash (name, strlen (name)) % HASHSIZE; +} + /* Initializer for this module. */ void diff --git a/gdb/stabsread.h b/gdb/stabsread.h index d24b25d..38e001a 100644 --- a/gdb/stabsread.h +++ b/gdb/stabsread.h @@ -31,6 +31,23 @@ enum language; #define EXTERN extern #endif +#define HASHSIZE 127 /* Size of things hashed via + hashname(). */ + +/* Compute a small integer hash code for the given name. */ + +extern int hashname (const char *name); + +/* Count symbols as they are processed, for error messages. */ + +EXTERN unsigned int symnum; + +#define next_symbol_text(objfile) (*next_symbol_text_func)(objfile) + +/* Function to invoke get the next symbol. Return the symbol name. */ + +EXTERN const char *(*next_symbol_text_func) (struct objfile *); + /* 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. -- 2.7.4