aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2020-03-26 09:28:08 -0600
committerTom Tromey <tom@tromey.com>2020-03-26 09:28:10 -0600
commitbf80d710525ba743d0046bf1f9cab6a019d7c616 (patch)
tree073246585a1b076002bb031d95148c9d1724035b /gdb
parent0314b3901c9cdc21ef9f0c1b0b88528d6f8d3073 (diff)
downloadfsf-binutils-gdb-bf80d710525ba743d0046bf1f9cab6a019d7c616.zip
fsf-binutils-gdb-bf80d710525ba743d0046bf1f9cab6a019d7c616.tar.gz
fsf-binutils-gdb-bf80d710525ba743d0046bf1f9cab6a019d7c616.tar.bz2
Change dwarf_decode_macro_bytes calling convention
This changes dwarf_decode_macro_bytes to accept a buildsym_compunit rather than a dwarf2_cu. This enables some subsequent changes; and also makes the function accept a "more specific" parameter. gdb/ChangeLog 2020-03-26 Tom Tromey <tom@tromey.com> * dwarf2/read.c (macro_start_file): Change "cu" parameter to "builder". (dwarf_decode_macro_bytes): Likewise. Add dwarf2_per_objfile parameter. (dwarf_decode_macros): Update.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/dwarf2/read.c23
2 files changed, 21 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e3d0c60..afe7823 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
2020-03-26 Tom Tromey <tom@tromey.com>
+ * dwarf2/read.c (macro_start_file): Change "cu" parameter to
+ "builder".
+ (dwarf_decode_macro_bytes): Likewise. Add dwarf2_per_objfile
+ parameter.
+ (dwarf_decode_macros): Update.
+
+2020-03-26 Tom Tromey <tom@tromey.com>
+
* dwarf2/read.c (read_attribute_value): Update.
(read_indirect_string_from_dwz): Move to dwz.c; change into
method.
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 23b3fab..1410dd4 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -23090,7 +23090,7 @@ dwarf_alloc_die (struct dwarf2_cu *cu, int num_attrs)
/* Macro support. */
static struct macro_source_file *
-macro_start_file (struct dwarf2_cu *cu,
+macro_start_file (buildsym_compunit *builder,
int file, int line,
struct macro_source_file *current_file,
struct line_header *lh)
@@ -23102,7 +23102,7 @@ macro_start_file (struct dwarf2_cu *cu,
{
/* Note: We don't create a macro table for this compilation unit
at all until we actually get a filename. */
- struct macro_table *macro_table = cu->get_builder ()->get_macro_table ();
+ struct macro_table *macro_table = builder->get_macro_table ();
/* If we have no current file, then this must be the start_file
directive for the compilation unit's main source file. */
@@ -23463,7 +23463,8 @@ dwarf_parse_macro_header (const gdb_byte **opcode_definitions,
including DW_MACRO_import. */
static void
-dwarf_decode_macro_bytes (struct dwarf2_cu *cu,
+dwarf_decode_macro_bytes (struct dwarf2_per_objfile *dwarf2_per_objfile,
+ buildsym_compunit *builder,
bfd *abfd,
const gdb_byte *mac_ptr, const gdb_byte *mac_end,
struct macro_source_file *current_file,
@@ -23473,8 +23474,6 @@ dwarf_decode_macro_bytes (struct dwarf2_cu *cu,
unsigned int offset_size,
htab_t include_hash)
{
- struct dwarf2_per_objfile *dwarf2_per_objfile
- = cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile;
enum dwarf_macro_record_type macinfo_type;
int at_commandline;
@@ -23631,8 +23630,8 @@ dwarf_decode_macro_bytes (struct dwarf2_cu *cu,
at_commandline = 0;
}
else
- current_file = macro_start_file (cu, file, line, current_file,
- lh);
+ current_file = macro_start_file (builder, file, line,
+ current_file, lh);
}
break;
@@ -23713,7 +23712,8 @@ dwarf_decode_macro_bytes (struct dwarf2_cu *cu,
{
*slot = (void *) new_mac_ptr;
- dwarf_decode_macro_bytes (cu, include_bfd, new_mac_ptr,
+ dwarf_decode_macro_bytes (dwarf2_per_objfile, builder,
+ include_bfd, new_mac_ptr,
include_mac_end, current_file, lh,
section, section_is_gnu, is_dwz,
offset_size, include_hash);
@@ -23827,6 +23827,7 @@ dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset,
return;
}
+ buildsym_compunit *builder = cu->get_builder ();
do
{
/* Do we at least have room for a macinfo type byte? */
@@ -23875,7 +23876,8 @@ dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset,
file = read_unsigned_leb128 (abfd, mac_ptr, &bytes_read);
mac_ptr += bytes_read;
- current_file = macro_start_file (cu, file, line, current_file, lh);
+ current_file = macro_start_file (builder, file, line,
+ current_file, lh);
}
break;
@@ -23940,7 +23942,8 @@ dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset,
mac_ptr = section->buffer + offset;
slot = htab_find_slot (include_hash.get (), mac_ptr, INSERT);
*slot = (void *) mac_ptr;
- dwarf_decode_macro_bytes (cu, abfd, mac_ptr, mac_end,
+ dwarf_decode_macro_bytes (dwarf2_per_objfile, builder,
+ abfd, mac_ptr, mac_end,
current_file, lh, section,
section_is_gnu, 0, offset_size,
include_hash.get ());