From 5985ac614d7e8ae65faadf62e9302c1c096b5647 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 20 May 2018 11:19:14 -0600 Subject: [PATCH] Move within_function to stabsread The global within_function is only used by a few symbol readers. This patch moves the global out of buildsym and into stabsread, which seemed like a better fit. It also arranges for the existing readers to clear the global at the appropriate time. gdb/ChangeLog 2018-07-16 Tom Tromey * stabsread.h (within_function): Move from buildsym.h. * stabsread.c (start_stabs): Clear within_function. * coffread.c (coff_start_symtab): Clear within_function. * buildsym.h (within_function): Move to stabsread.h. * buildsym.c (prepare_for_building): Update. --- gdb/ChangeLog | 8 ++++++++ gdb/buildsym.c | 1 - gdb/buildsym.h | 5 ----- gdb/coffread.c | 1 + gdb/stabsread.c | 1 + gdb/stabsread.h | 5 +++++ 6 files changed, 15 insertions(+), 6 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f43ab29eab..74573a8f83 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2018-07-16 Tom Tromey + + * stabsread.h (within_function): Move from buildsym.h. + * stabsread.c (start_stabs): Clear within_function. + * coffread.c (coff_start_symtab): Clear within_function. + * buildsym.h (within_function): Move to stabsread.h. + * buildsym.c (prepare_for_building): Update. + 2018-07-16 Tom Tromey * stabsread.h (processing_gcc_compilation): Move from buildsym.h. diff --git a/gdb/buildsym.c b/gdb/buildsym.c index f2176e2732..fea43645e7 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -1031,7 +1031,6 @@ prepare_for_building () { local_symbols = NULL; local_using_directives = NULL; - within_function = 0; context_stack_depth = 0; diff --git a/gdb/buildsym.h b/gdb/buildsym.h index 01d9acc2c9..a6bed3c611 100644 --- a/gdb/buildsym.h +++ b/gdb/buildsym.h @@ -150,11 +150,6 @@ EXTERN int context_stack_depth; /* Non-zero if the context stack is empty. */ #define outermost_context_p() (context_stack_depth == 0) -/* Nonzero if within a function (so symbols should be local, if - nothing says specifically). */ - -EXTERN int within_function; - /* The type of the record_line function. */ typedef void (record_line_ftype) (struct subfile *subfile, int line, CORE_ADDR pc); diff --git a/gdb/coffread.c b/gdb/coffread.c index 0b0cbace6b..0ba5bab60d 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -383,6 +383,7 @@ coff_alloc_type (int index) static void coff_start_symtab (struct objfile *objfile, const char *name) { + within_function = 0; start_symtab (objfile, /* We fill in the filename later. start_symtab puts this pointer into last_source_file and we put it in subfiles->name, which diff --git a/gdb/stabsread.c b/gdb/stabsread.c index e4513c699b..a260fc76b5 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -4758,6 +4758,7 @@ start_stabs (void) n_this_object_header_files = 1; type_vector_length = 0; type_vector = (struct type **) 0; + within_function = 0; /* FIXME: If common_block_name is not already NULL, we should complain(). */ common_block_name = NULL; diff --git a/gdb/stabsread.h b/gdb/stabsread.h index 0da88f4142..34c6738813 100644 --- a/gdb/stabsread.h +++ b/gdb/stabsread.h @@ -53,6 +53,11 @@ EXTERN const char *(*next_symbol_text_func) (struct objfile *); EXTERN unsigned char processing_gcc_compilation; +/* Nonzero if within a function (so symbols should be local, if + nothing says specifically). */ + +EXTERN int within_function; + /* 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.34.1