forked from Imagelibrary/binutils-gdb
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:
committed by
Simon Marchi
parent
ab5f850eed
commit
0d9acb4531
@@ -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);
|
||||
|
||||
@@ -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. */
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
16
gdb/symtab.h
16
gdb/symtab.h
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user