gdb: remove COMPUNIT_DIRNAME macro, add getter/setter

Add a getter and a setter for a compunit_symtab's dirname.  Remove the
corresponding macro and adjust all callers.

Change-Id: If2f39b295fd26822586485e04a8b8b5aa5cc9b2e
This commit is contained in:
Simon Marchi
2021-11-19 22:15:30 -05:00
committed by Simon Marchi
parent ab5f850eed
commit 0d9acb4531
7 changed files with 21 additions and 14 deletions

View File

@@ -303,7 +303,7 @@ restart_symtab (struct compunit_symtab *cust,
buildsym_compunit
= new struct buildsym_compunit (cust->objfile (),
name,
COMPUNIT_DIRNAME (cust),
cust->dirname (),
compunit_language (cust),
start_addr,
cust);

View File

@@ -1005,8 +1005,8 @@ buildsym_compunit::end_symtab_with_blockvector (struct block *static_block,
{
/* Reallocate the dirname on the symbol obstack. */
const char *comp_dir = m_comp_dir.get ();
COMPUNIT_DIRNAME (cu) = obstack_strdup (&m_objfile->objfile_obstack,
comp_dir);
cu->set_dirname (obstack_strdup (&m_objfile->objfile_obstack,
comp_dir));
}
/* Save the debug format string (if any) in the symtab. */

View File

@@ -10723,7 +10723,7 @@ dwarf2_cu::setup_type_unit_groups (struct die_info *die)
struct compunit_symtab *cust = tug_unshare->compunit_symtab;
m_builder.reset (new struct buildsym_compunit
(cust->objfile (), "",
COMPUNIT_DIRNAME (cust),
cust->dirname (),
compunit_language (cust),
0, cust));
list_in_scope = get_builder ()->get_file_symbols ();
@@ -10775,7 +10775,7 @@ dwarf2_cu::setup_type_unit_groups (struct die_info *die)
struct compunit_symtab *cust = tug_unshare->compunit_symtab;
m_builder.reset (new struct buildsym_compunit
(cust->objfile (), "",
COMPUNIT_DIRNAME (cust),
cust->dirname (),
compunit_language (cust),
0, cust));
list_in_scope = get_builder ()->get_file_symbols ();

View File

@@ -513,7 +513,7 @@ finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile)
add_compunit_symtab_to_objfile (cust);
/* JIT compilers compile in memory. */
COMPUNIT_DIRNAME (cust) = NULL;
cust->set_dirname (nullptr);
/* Copy over the linetable entry if one was provided. */
if (stab->linetable)

View File

@@ -1066,7 +1066,7 @@ macro_source_fullname (struct macro_source_file *file)
const char *comp_dir = NULL;
if (file->table->compunit_symtab != NULL)
comp_dir = COMPUNIT_DIRNAME (file->table->compunit_symtab);
comp_dir = file->table->compunit_symtab->dirname ();
if (comp_dir == NULL || IS_ABSOLUTE_PATH (file->filename))
return file->filename;

View File

@@ -782,9 +782,8 @@ maintenance_info_symtabs (const char *regexp, int from_tty)
(cust->producer () != nullptr
? cust->producer () : "(null)"));
printf_filtered (" dirname %s\n",
COMPUNIT_DIRNAME (cust) != NULL
? COMPUNIT_DIRNAME (cust)
: "(null)");
(cust->dirname () != NULL
? cust->dirname () : "(null)"));
printf_filtered (" blockvector"
" ((struct blockvector *) %s)\n",
host_address_to_string

View File

@@ -1413,8 +1413,7 @@ using symtab_range = next_range<symtab>;
#define SYMTAB_OBJFILE(symtab) \
(SYMTAB_COMPUNIT (symtab)->objfile ())
#define SYMTAB_PSPACE(symtab) (SYMTAB_OBJFILE (symtab)->pspace)
#define SYMTAB_DIRNAME(symtab) \
COMPUNIT_DIRNAME (SYMTAB_COMPUNIT (symtab))
#define SYMTAB_DIRNAME(symtab) (SYMTAB_COMPUNIT (symtab)->dirname ())
/* Compunit symtabs contain the actual "symbol table", aka blockvector, as well
as the list of all source files (what gdb has historically associated with
@@ -1502,6 +1501,16 @@ struct compunit_symtab
m_producer = producer;
}
const char *dirname () const
{
return m_dirname;
}
void set_dirname (const char *dirname)
{
m_dirname = dirname;
}
/* Make PRIMARY_FILETAB the primary filetab of this compunit symtab.
PRIMARY_FILETAB must already be a filetab of this compunit symtab. */
@@ -1551,7 +1560,7 @@ struct compunit_symtab
const char *m_producer;
/* Directory in which it was compiled, or NULL if we don't know. */
const char *dirname;
const char *m_dirname;
/* List of all symbol scope blocks for this symtab. It is shared among
all symtabs in a given compilation unit. */
@@ -1597,7 +1606,6 @@ struct compunit_symtab
using compunit_symtab_range = next_range<compunit_symtab>;
#define COMPUNIT_DIRNAME(cust) ((cust)->dirname)
#define COMPUNIT_BLOCKVECTOR(cust) ((cust)->blockvector)
#define COMPUNIT_BLOCK_LINE_SECTION(cust) ((cust)->block_line_section)
#define COMPUNIT_LOCATIONS_VALID(cust) ((cust)->locations_valid)