diff options
author | Tom Tromey <tom@tromey.com> | 2020-03-26 09:28:08 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-03-26 09:28:10 -0600 |
commit | bf80d710525ba743d0046bf1f9cab6a019d7c616 (patch) | |
tree | 073246585a1b076002bb031d95148c9d1724035b /gdb/dwarf2 | |
parent | 0314b3901c9cdc21ef9f0c1b0b88528d6f8d3073 (diff) | |
download | fsf-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/dwarf2')
-rw-r--r-- | gdb/dwarf2/read.c | 23 |
1 files changed, 13 insertions, 10 deletions
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 ()); |