From bf80d710525ba743d0046bf1f9cab6a019d7c616 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 26 Mar 2020 09:28:08 -0600 Subject: 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 * 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. --- gdb/ChangeLog | 8 ++++++++ gdb/dwarf2/read.c | 23 +++++++++++++---------- 2 files changed, 21 insertions(+), 10 deletions(-) (limited to 'gdb') 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 + * 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 + * 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 ()); -- cgit v1.1