gdb: remove SYMTAB_DIRNAME macro

Remove the macro, replace with an equivalent method.

Change-Id: I46ec36b91bb734331138eb9cd086b2db01635aed
This commit is contained in:
Simon Marchi
2021-11-20 22:24:54 -05:00
parent cdc22ffbf5
commit 3574a7b3f1
4 changed files with 19 additions and 13 deletions

View File

@@ -2046,8 +2046,8 @@ ambiguous_line_spec (gdb::array_view<const symtab_and_line> sals,
static int
cmp_symtabs (const symtab_and_line &sala, const symtab_and_line &salb)
{
const char *dira = SYMTAB_DIRNAME (sala.symtab);
const char *dirb = SYMTAB_DIRNAME (salb.symtab);
const char *dira = sala.symtab->dirname ();
const char *dirb = salb.symtab->dirname ();
int r;
if (dira == NULL)

View File

@@ -713,8 +713,8 @@ info_source_command (const char *ignore, int from_tty)
cust = s->compunit ();
printf_filtered (_("Current source file is %s\n"), s->filename);
if (SYMTAB_DIRNAME (s) != NULL)
printf_filtered (_("Compilation directory is %s\n"), SYMTAB_DIRNAME (s));
if (s->dirname () != NULL)
printf_filtered (_("Compilation directory is %s\n"), s->dirname ());
if (s->fullname)
printf_filtered (_("Located in %s\n"), s->fullname);
const std::vector<off_t> *offsets;
@@ -1180,7 +1180,7 @@ open_source_file (struct symtab *s)
gdb::unique_xmalloc_ptr<char> fullname (s->fullname);
s->fullname = NULL;
scoped_fd fd = find_and_open_source (s->filename, SYMTAB_DIRNAME (s),
scoped_fd fd = find_and_open_source (s->filename, s->dirname (),
&fullname);
if (fd.get () < 0)
@@ -1192,9 +1192,9 @@ open_source_file (struct symtab *s)
std::string srcpath;
if (IS_ABSOLUTE_PATH (s->filename))
srcpath = s->filename;
else if (SYMTAB_DIRNAME (s) != nullptr)
else if (s->dirname () != nullptr)
{
srcpath = SYMTAB_DIRNAME (s);
srcpath = s->dirname ();
srcpath += SLASH_STRING;
srcpath += s->filename;
}
@@ -1268,10 +1268,10 @@ symtab_to_fullname (struct symtab *s)
/* rewrite_source_path would be applied by find_and_open_source, we
should report the pathname where GDB tried to find the file. */
if (SYMTAB_DIRNAME (s) == NULL || IS_ABSOLUTE_PATH (s->filename))
if (s->dirname () == NULL || IS_ABSOLUTE_PATH (s->filename))
fullname.reset (xstrdup (s->filename));
else
fullname.reset (concat (SYMTAB_DIRNAME (s), SLASH_STRING,
fullname.reset (concat (s->dirname (), SLASH_STRING,
s->filename, (char *) NULL));
s->fullname = rewrite_source_path (fullname.get ()).release ();

View File

@@ -249,9 +249,9 @@ dump_symtab_1 (struct symtab *symtab, struct ui_file *outfile)
symtab_to_filename_for_display (symtab),
host_address_to_string (symtab));
if (SYMTAB_DIRNAME (symtab) != NULL)
if (symtab->dirname () != NULL)
fprintf_filtered (outfile, "Compilation directory is %s\n",
SYMTAB_DIRNAME (symtab));
symtab->dirname ());
fprintf_filtered (outfile, "Read from object file %s (%s)\n",
objfile_name (objfile),
host_address_to_string (objfile));

View File

@@ -1409,6 +1409,8 @@ struct symtab
program_space *pspace () const;
const char *dirname () const;
/* Unordered chain of all filetabs in the compunit, with the exception
that the "main" source file is the first entry in the list. */
@@ -1441,8 +1443,6 @@ struct symtab
using symtab_range = next_range<symtab>;
#define SYMTAB_DIRNAME(symtab) ((symtab)->compunit ()->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
the term "symtab").
@@ -1696,6 +1696,12 @@ symtab::objfile () const
return this->compunit ()->objfile ();
}
inline const char *
symtab::dirname () const
{
return this->compunit ()->dirname ();
}
/* Return the language of CUST. */
extern enum language compunit_language (const struct compunit_symtab *cust);