From: Simon Marchi Date: Thu, 7 Apr 2022 20:43:05 +0000 (-0400) Subject: gdb: change file_file_name to return an std::string X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d3a76a5583ddb34402e79969f61f195cfa08ad62;p=binutils-gdb.git gdb: change file_file_name to return an std::string Straightforward change, return an std::string instead of a gdb::unique_xmalloc_ptr. No behavior change expected. Change-Id: Ia5e94c94221c35f978bb1b7bdffbff7209e0520e --- diff --git a/gdb/dwarf2/line-header.c b/gdb/dwarf2/line-header.c index 4807fcaa583..77e7e553b21 100644 --- a/gdb/dwarf2/line-header.c +++ b/gdb/dwarf2/line-header.c @@ -60,7 +60,7 @@ line_header::add_file_name (const char *name, m_file_names.emplace_back (name, d_index, mod_time, length); } -gdb::unique_xmalloc_ptr +std::string line_header::file_file_name (int file) const { /* Is the file number a valid index into the line header's file name @@ -73,26 +73,20 @@ line_header::file_file_name (int file) const { const char *dir = fe->include_dir (this); if (dir != NULL) - return gdb::unique_xmalloc_ptr (concat (dir, SLASH_STRING, - fe->name, - (char *) NULL)); + return string_printf ("%s/%s", dir, fe->name); } - return make_unique_xstrdup (fe->name); + + return fe->name; } else { /* The compiler produced a bogus file number. We can at least record the macro definitions made in the file, even if we won't be able to find the file by name. */ - char fake_name[80]; - - xsnprintf (fake_name, sizeof (fake_name), - "", file); - complaint (_("bad file number in macro information (%d)"), file); - return make_unique_xstrdup (fake_name); + return string_printf ("", file); } } diff --git a/gdb/dwarf2/line-header.h b/gdb/dwarf2/line-header.h index 8fb44be56b2..252dddd846b 100644 --- a/gdb/dwarf2/line-header.h +++ b/gdb/dwarf2/line-header.h @@ -163,10 +163,8 @@ struct line_header const gdb_byte *statement_program_start {}, *statement_program_end {}; /* Return file name relative to the compilation directory of file - number I in this object's file name table. The result is - allocated using xmalloc; the caller is responsible for freeing - it. */ - gdb::unique_xmalloc_ptr file_file_name (int file) const; + number FILE in this object's file name table. */ + std::string file_file_name (int file) const; private: /* The include_directories table. Note these are observing diff --git a/gdb/dwarf2/macro.c b/gdb/dwarf2/macro.c index b378d797479..99c3653a2c3 100644 --- a/gdb/dwarf2/macro.c +++ b/gdb/dwarf2/macro.c @@ -52,7 +52,7 @@ macro_start_file (buildsym_compunit *builder, const struct line_header *lh) { /* File name relative to the compilation directory of this source file. */ - gdb::unique_xmalloc_ptr file_name = lh->file_file_name (file); + std::string file_name = lh->file_file_name (file); if (! current_file) { @@ -62,11 +62,11 @@ macro_start_file (buildsym_compunit *builder, /* If we have no current file, then this must be the start_file directive for the compilation unit's main source file. */ - current_file = macro_set_main (macro_table, file_name.get ()); + current_file = macro_set_main (macro_table, file_name.c_str ()); macro_define_special (macro_table); } else - current_file = macro_include (current_file, line, file_name.get ()); + current_file = macro_include (current_file, line, file_name.c_str ()); return current_file; }