aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2021-11-19 22:15:30 -0500
committerSimon Marchi <simon.marchi@polymtl.ca>2022-02-06 15:48:18 -0500
commit0d9acb4531cfe336b2b335fbaa1f2ef878a6e4d9 (patch)
tree1e26fd55ddf025d4587b6f89178a07c3baff0e83
parentab5f850eed6aba84050d075e8c8a2cb16a876b15 (diff)
downloadgdb-0d9acb4531cfe336b2b335fbaa1f2ef878a6e4d9.zip
gdb-0d9acb4531cfe336b2b335fbaa1f2ef878a6e4d9.tar.gz
gdb-0d9acb4531cfe336b2b335fbaa1f2ef878a6e4d9.tar.bz2
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
-rw-r--r--gdb/buildsym-legacy.c2
-rw-r--r--gdb/buildsym.c4
-rw-r--r--gdb/dwarf2/read.c4
-rw-r--r--gdb/jit.c2
-rw-r--r--gdb/macrotab.c2
-rw-r--r--gdb/symmisc.c5
-rw-r--r--gdb/symtab.h16
7 files changed, 21 insertions, 14 deletions
diff --git a/gdb/buildsym-legacy.c b/gdb/buildsym-legacy.c
index aa7b8b5..7659f53 100644
--- a/gdb/buildsym-legacy.c
+++ b/gdb/buildsym-legacy.c
@@ -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);
diff --git a/gdb/buildsym.c b/gdb/buildsym.c
index 2272727..b96d154 100644
--- a/gdb/buildsym.c
+++ b/gdb/buildsym.c
@@ -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. */
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 7e62d11..cd3e6af 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -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 ();
diff --git a/gdb/jit.c b/gdb/jit.c
index 6366c75..eda96b0 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -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)
diff --git a/gdb/macrotab.c b/gdb/macrotab.c
index 92d68e7..7ca3f31 100644
--- a/gdb/macrotab.c
+++ b/gdb/macrotab.c
@@ -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;
diff --git a/gdb/symmisc.c b/gdb/symmisc.c
index b946fc8..9c882a4 100644
--- a/gdb/symmisc.c
+++ b/gdb/symmisc.c
@@ -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
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 1e3f95d..b72abab 100644
--- a/gdb/symtab.h
+++ b/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)