From: Alan Modra Date: Wed, 14 Aug 2019 01:56:48 +0000 (+0930) Subject: Use comp_unit_maybe_decode_line_info in more places X-Git-Tag: binutils-2_33~235 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c327a44f38ad5ab0dfd8da5184c4c030798ef323;p=platform%2Fupstream%2Fbinutils.git Use comp_unit_maybe_decode_line_info in more places * dwarf2.c (comp_unit_maybe_decode_line_info): Declare. (comp_unit_find_nearest_line): Use it here.. (_bfd_dwarf2_find_symbol_bias): ..and here. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a2c2e51..143350e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,11 @@ 2019-08-14 Alan Modra + * dwarf2.c (comp_unit_maybe_decode_line_info): Declare. + (comp_unit_find_nearest_line): Use it here.. + (_bfd_dwarf2_find_symbol_bias): ..and here. + +2019-08-14 Alan Modra + * dwarf2.c (_bfd_dwarf2_find_nearest_line): Remove addr_size parameter. * libbfd-in.h (_bfd_dwarf2_find_nearest_line): Update prototype. * coffgen.c (coff_find_nearest_line_with_names): Adjust diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index 9cbd81d..65bb1e4 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -2804,6 +2804,9 @@ lookup_symbol_in_variable_table (struct comp_unit *unit, return FALSE; } +static bfd_boolean comp_unit_maybe_decode_line_info (struct comp_unit *, + struct dwarf2_debug *); + static bfd_boolean find_abstract_instance (struct comp_unit * unit, bfd_byte * orig_info_ptr, @@ -3604,33 +3607,9 @@ comp_unit_find_nearest_line (struct comp_unit *unit, { bfd_boolean func_p; - if (unit->error) + if (!comp_unit_maybe_decode_line_info (unit, stash)) return FALSE; - if (! unit->line_table) - { - if (! unit->stmtlist) - { - unit->error = 1; - return FALSE; - } - - unit->line_table = decode_line_info (unit, stash); - - if (! unit->line_table) - { - unit->error = 1; - return FALSE; - } - - if (unit->first_child_die_ptr < unit->end_ptr - && ! scan_unit_for_symbols (unit)) - { - unit->error = 1; - return FALSE; - } - } - *function_ptr = NULL; func_p = lookup_address_in_function_table (unit, addr, function_ptr); if (func_p && (*function_ptr)->tag == DW_TAG_inlined_subroutine) @@ -4492,13 +4471,7 @@ _bfd_dwarf2_find_symbol_bias (asymbol ** symbols, void ** pinfo) { struct funcinfo * func; - if (unit->function_table == NULL) - { - if (unit->line_table == NULL) - unit->line_table = decode_line_info (unit, stash); - if (unit->line_table != NULL) - scan_unit_for_symbols (unit); - } + comp_unit_maybe_decode_line_info (unit, stash); for (func = unit->function_table; func != NULL; func = func->prev_func) if (func->name && func->arange.low)