From 4b167ea1a0f1ff6f02684556e951dab8d48b9fa4 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 27 May 2020 11:14:01 -0400 Subject: Remove dwarf2_per_cu_data::text_offset This method simply returns the text offset of the objfile associated to the dwarf2_per_cu_data object. Since dwarf2_per_cu_data objects are going to become objfile-independent, we can't keep this method. This patch removes it. Existing callers need to figure out the in the context of which objfile this is being used, and call text_offset on it. Typically, this comes from a symbol baton, where we store the corresponding dwarf2_per_objfile. gdb/ChangeLog: * dwarf2/read.h (struct dwarf2_per_cu_data) : Remove. * dwarf2/read.c (dwarf2_per_cu_data::text_offset): Remove. * dwarf2/loc.c (dwarf2_find_location_expression): Update. (dwarf2_compile_property_to_c): Update. (dwarf2_compile_expr_to_ax): Add dwarf2_per_objfile parameter, use text offset from objfile. (locexpr_tracepoint_var_ref): Update. (locexpr_generate_c_location): Update. (loclist_describe_location): Update. (loclist_tracepoint_var_ref): Update. * dwarf2/compile.h (compile_dwarf_bounds_to_c): Add dwarf2_per_objfile parameter. * dwarf2/loc2c.c (do_compile_dwarf_expr_to_c): Likewise, use text offset from objfile. (compile_dwarf_expr_to_c): Add dwarf2_per_objfile parameter. Change-Id: I56b01ba294733362a3562426a96d48ae051a776f --- gdb/compile/compile-loc2c.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'gdb/compile/compile-loc2c.c') diff --git a/gdb/compile/compile-loc2c.c b/gdb/compile/compile-loc2c.c index 06a044d..2fd1810 100644 --- a/gdb/compile/compile-loc2c.c +++ b/gdb/compile/compile-loc2c.c @@ -583,7 +583,8 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, CORE_ADDR *initial, - struct dwarf2_per_cu_data *per_cu) + dwarf2_per_cu_data *per_cu, + dwarf2_per_objfile *per_objfile) { /* We keep a counter so that labels and other objects we create have unique names. */ @@ -719,7 +720,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream, index, not an address. We don't support things like branching between the address and the TLS op. */ if (op_ptr >= op_end || *op_ptr != DW_OP_GNU_push_tls_address) - uoffset += per_cu->text_offset (); + uoffset += per_objfile->objfile->text_section_offset (); push (indent, stream, uoffset); break; @@ -896,7 +897,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream, sym, pc, arch, registers_used, addr_size, datastart, datastart + datalen, - NULL, per_cu); + NULL, per_cu, per_objfile); pushf (indent, stream, "%s + %s", fb_name, hex_string (offset)); } @@ -1077,7 +1078,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream, sym, pc, arch, registers_used, addr_size, cfa_start, cfa_end, - &text_offset, per_cu); + &text_offset, per_cu, per_objfile); pushf (indent, stream, "%s", cfa_name); } } @@ -1123,11 +1124,12 @@ compile_dwarf_expr_to_c (string_file *stream, const char *result_name, struct gdbarch *arch, unsigned char *registers_used, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, - struct dwarf2_per_cu_data *per_cu) + dwarf2_per_cu_data *per_cu, + dwarf2_per_objfile *per_objfile) { do_compile_dwarf_expr_to_c (2, stream, GCC_UINTPTR, result_name, sym, pc, arch, registers_used, addr_size, op_ptr, op_end, - NULL, per_cu); + NULL, per_cu, per_objfile); } /* See compile.h. */ @@ -1140,9 +1142,11 @@ compile_dwarf_bounds_to_c (string_file *stream, struct gdbarch *arch, unsigned char *registers_used, unsigned int addr_size, const gdb_byte *op_ptr, const gdb_byte *op_end, - struct dwarf2_per_cu_data *per_cu) + dwarf2_per_cu_data *per_cu, + dwarf2_per_objfile *per_objfile) { do_compile_dwarf_expr_to_c (2, stream, "unsigned long ", result_name, sym, pc, arch, registers_used, - addr_size, op_ptr, op_end, NULL, per_cu); + addr_size, op_ptr, op_end, NULL, per_cu, + per_objfile); } -- cgit v1.1