This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] Use ALL_PRIMARY_SYMTABS instead of ALL_SYMTABS.
- From: Doug Evans <xdje42 at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Fri, 31 Oct 2014 22:32:06 -0700
- Subject: [PATCH] Use ALL_PRIMARY_SYMTABS instead of ALL_SYMTABS.
- Authentication-results: sourceware.org; auth=none
Hi.
I noticed a couple of users of ALL_SYMTABS when what they really
want to use is ALL_PRIMARY_SYMTABS. Non-primary symtabs share the
blockvector of their primary symtab.
2014-10-31 Doug Evans <xdje42@gmail.com>
* ada-lang.c (ada_make_symbol_completion_list): Use
ALL_PRIMARY_SYMTABS instead of ALL_SYMTABS.
* symtab.c (lookup_objfile_from_block): Ditto.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 5793cd2..4320eec 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -6212,9 +6212,11 @@ ada_make_symbol_completion_list (const char *text0, const char *word,
}
/* Go through the symtabs and check the externs and statics for
- symbols which match. */
+ symbols which match.
+ Non-primary symtabs share the block vector with their primary symtabs
+ so we use ALL_PRIMARY_SYMTABS here instead of ALL_SYMTABS. */
- ALL_SYMTABS (objfile, s)
+ ALL_PRIMARY_SYMTABS (objfile, s)
{
QUIT;
b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK);
@@ -6226,7 +6228,7 @@ ada_make_symbol_completion_list (const char *text0, const char *word,
}
}
- ALL_SYMTABS (objfile, s)
+ ALL_PRIMARY_SYMTABS (objfile, s)
{
QUIT;
b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), STATIC_BLOCK);
diff --git a/gdb/symtab.c b/gdb/symtab.c
index ed164f7..6dd4910 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1549,8 +1549,10 @@ lookup_objfile_from_block (const struct block *block)
return NULL;
block = block_global_block (block);
- /* Go through SYMTABS. */
- ALL_SYMTABS (obj, s)
+ /* Go through SYMTABS.
+ Non-primary symtabs share the block vector with their primary symtabs
+ so we use ALL_PRIMARY_SYMTABS here instead of ALL_SYMTABS. */
+ ALL_PRIMARY_SYMTABS (obj, s)
if (block == BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK))
{
if (obj->separate_debug_objfile_backlink)