Lines Matching refs:unit

135     struct comp_unit *unit;  member
846 read_indirect_string (struct comp_unit *unit, in read_indirect_string() argument
851 struct dwarf2_debug *stash = unit->stash; in read_indirect_string()
852 struct dwarf2_debug_file *file = unit->file; in read_indirect_string()
855 if (unit->offset_size > (size_t) (buf_end - *ptr)) in read_indirect_string()
861 if (unit->offset_size == 4) in read_indirect_string()
862 offset = read_4_bytes (unit->abfd, ptr, buf_end); in read_indirect_string()
864 offset = read_8_bytes (unit->abfd, ptr, buf_end); in read_indirect_string()
866 if (! read_section (unit->abfd, &stash->debug_sections[debug_str], in read_indirect_string()
880 read_indirect_line_string (struct comp_unit *unit, in read_indirect_line_string() argument
885 struct dwarf2_debug *stash = unit->stash; in read_indirect_line_string()
886 struct dwarf2_debug_file *file = unit->file; in read_indirect_line_string()
889 if (unit->offset_size > (size_t) (buf_end - *ptr)) in read_indirect_line_string()
895 if (unit->offset_size == 4) in read_indirect_line_string()
896 offset = read_4_bytes (unit->abfd, ptr, buf_end); in read_indirect_line_string()
898 offset = read_8_bytes (unit->abfd, ptr, buf_end); in read_indirect_line_string()
900 if (! read_section (unit->abfd, &stash->debug_sections[debug_line_str], in read_indirect_line_string()
917 read_alt_indirect_string (struct comp_unit *unit, in read_alt_indirect_string() argument
922 struct dwarf2_debug *stash = unit->stash; in read_alt_indirect_string()
925 if (unit->offset_size > (size_t) (buf_end - *ptr)) in read_alt_indirect_string()
931 if (unit->offset_size == 4) in read_alt_indirect_string()
932 offset = read_4_bytes (unit->abfd, ptr, buf_end); in read_alt_indirect_string()
934 offset = read_8_bytes (unit->abfd, ptr, buf_end); in read_alt_indirect_string()
939 char *debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR); in read_alt_indirect_string()
958 if (! read_section (unit->stash->alt.bfd_ptr, in read_alt_indirect_string()
977 read_alt_indirect_ref (struct comp_unit *unit, uint64_t offset) in read_alt_indirect_ref() argument
979 struct dwarf2_debug *stash = unit->stash; in read_alt_indirect_ref()
984 char *debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR); in read_alt_indirect_ref()
1003 if (! read_section (unit->stash->alt.bfd_ptr, in read_alt_indirect_ref()
1014 read_address (struct comp_unit *unit, bfd_byte **ptr, bfd_byte *buf_end) in read_address() argument
1019 if (bfd_get_flavour (unit->abfd) == bfd_target_elf_flavour) in read_address()
1020 signed_vma = get_elf_backend_data (unit->abfd)->sign_extend_vma; in read_address()
1022 if (unit->addr_size > (size_t) (buf_end - buf)) in read_address()
1028 *ptr = buf + unit->addr_size; in read_address()
1031 switch (unit->addr_size) in read_address()
1034 return bfd_get_signed_64 (unit->abfd, buf); in read_address()
1036 return bfd_get_signed_32 (unit->abfd, buf); in read_address()
1038 return bfd_get_signed_16 (unit->abfd, buf); in read_address()
1045 switch (unit->addr_size) in read_address()
1048 return bfd_get_64 (unit->abfd, buf); in read_address()
1050 return bfd_get_32 (unit->abfd, buf); in read_address()
1052 return bfd_get_16 (unit->abfd, buf); in read_address()
1357 read_indexed_address (uint64_t idx, struct comp_unit *unit) in read_indexed_address() argument
1359 struct dwarf2_debug *stash = unit->stash; in read_indexed_address()
1360 struct dwarf2_debug_file *file = unit->file; in read_indexed_address()
1367 if (!read_section (unit->abfd, &stash->debug_sections[debug_addr], in read_indexed_address()
1372 if (_bfd_mul_overflow (idx, unit->offset_size, &offset)) in read_indexed_address()
1375 offset += unit->dwarf_addr_offset; in read_indexed_address()
1376 if (offset < unit->dwarf_addr_offset in read_indexed_address()
1378 || file->dwarf_addr_size - offset < unit->offset_size) in read_indexed_address()
1383 if (unit->offset_size == 4) in read_indexed_address()
1384 return bfd_get_32 (unit->abfd, info_ptr); in read_indexed_address()
1385 else if (unit->offset_size == 8) in read_indexed_address()
1386 return bfd_get_64 (unit->abfd, info_ptr); in read_indexed_address()
1394 read_indexed_string (uint64_t idx, struct comp_unit *unit) in read_indexed_string() argument
1396 struct dwarf2_debug *stash = unit->stash; in read_indexed_string()
1397 struct dwarf2_debug_file *file = unit->file; in read_indexed_string()
1405 if (!read_section (unit->abfd, &stash->debug_sections[debug_str], in read_indexed_string()
1410 if (!read_section (unit->abfd, &stash->debug_sections[debug_str_offsets], in read_indexed_string()
1416 if (_bfd_mul_overflow (idx, unit->offset_size, &offset)) in read_indexed_string()
1419 offset += unit->dwarf_str_offset; in read_indexed_string()
1420 if (offset < unit->dwarf_str_offset in read_indexed_string()
1422 || file->dwarf_str_offsets_size - offset < unit->offset_size) in read_indexed_string()
1427 if (unit->offset_size == 4) in read_indexed_string()
1428 str_offset = bfd_get_32 (unit->abfd, info_ptr); in read_indexed_string()
1429 else if (unit->offset_size == 8) in read_indexed_string()
1430 str_offset = bfd_get_64 (unit->abfd, info_ptr); in read_indexed_string()
1447 struct comp_unit * unit, in read_attribute_value() argument
1451 bfd *abfd = unit->abfd; in read_attribute_value()
1471 if (unit->version >= 3) in read_attribute_value()
1473 if (unit->offset_size == 4) in read_attribute_value()
1474 attr->u.val = read_4_bytes (unit->abfd, &info_ptr, info_ptr_end); in read_attribute_value()
1476 attr->u.val = read_8_bytes (unit->abfd, &info_ptr, info_ptr_end); in read_attribute_value()
1481 attr->u.val = read_address (unit, &info_ptr, info_ptr_end); in read_attribute_value()
1485 if (unit->offset_size == 4) in read_attribute_value()
1486 attr->u.val = read_4_bytes (unit->abfd, &info_ptr, info_ptr_end); in read_attribute_value()
1488 attr->u.val = read_8_bytes (unit->abfd, &info_ptr, info_ptr_end); in read_attribute_value()
1511 if (unit->dwarf_addr_offset != 0) in read_attribute_value()
1512 attr->u.val = read_indexed_address (attr->u.val, unit); in read_attribute_value()
1520 if (unit->dwarf_addr_offset != 0) in read_attribute_value()
1521 attr->u.val = read_indexed_address (attr->u.val, unit); in read_attribute_value()
1525 if (unit->dwarf_addr_offset != 0) in read_attribute_value()
1526 attr->u.val = read_indexed_address(attr->u.val, unit); in read_attribute_value()
1534 if (unit->dwarf_addr_offset != 0) in read_attribute_value()
1535 attr->u.val = read_indexed_address (attr->u.val, unit); in read_attribute_value()
1546 attr->u.str = read_indirect_string (unit, &info_ptr, info_ptr_end); in read_attribute_value()
1549 attr->u.str = read_indirect_line_string (unit, &info_ptr, info_ptr_end); in read_attribute_value()
1552 attr->u.str = read_alt_indirect_string (unit, &info_ptr, info_ptr_end); in read_attribute_value()
1558 if (unit->dwarf_str_offset != 0) in read_attribute_value()
1559 attr->u.str = (char *) read_indexed_string (attr->u.val, unit); in read_attribute_value()
1565 if (unit->dwarf_str_offset != 0) in read_attribute_value()
1566 attr->u.str = (char *) read_indexed_string (attr->u.val, unit); in read_attribute_value()
1572 if (unit->dwarf_str_offset != 0) in read_attribute_value()
1573 attr->u.str = (char *) read_indexed_string (attr->u.val, unit); in read_attribute_value()
1579 if (unit->dwarf_str_offset != 0) in read_attribute_value()
1580 attr->u.str = (char *) read_indexed_string (attr->u.val, unit); in read_attribute_value()
1587 if (unit->dwarf_str_offset != 0) in read_attribute_value()
1588 attr->u.str = (char *) read_indexed_string (attr->u.val, unit); in read_attribute_value()
1622 if (unit->dwarf_addr_offset != 0) in read_attribute_value()
1623 attr->u.val = read_indexed_address (attr->u.val, unit); in read_attribute_value()
1631 info_ptr = read_attribute_value (attr, form, implicit_const, unit, in read_attribute_value()
1660 struct comp_unit * unit, in read_attribute() argument
1666 unit, info_ptr, info_ptr_end); in read_attribute()
2060 struct comp_unit *unit, in insert_arange_in_trie() argument
2078 if (leaf->ranges[i].unit == unit in insert_arange_in_trie()
2112 leaf->ranges[i].unit, leaf->ranges[i].low_pc, in insert_arange_in_trie()
2147 leaf->ranges[i].unit = unit; in insert_arange_in_trie()
2188 unit, in insert_arange_in_trie()
2202 arange_add (struct comp_unit *unit, struct arange *first_arange, in arange_add() argument
2213 *trie_root = insert_arange_in_trie (unit->file->bfd_ptr, in arange_add()
2217 unit, in arange_add()
2252 arange = (struct arange *) bfd_alloc (unit->abfd, sizeof (*arange)); in arange_add()
2476 read_formatted_entries (struct comp_unit *unit, bfd_byte **bufp, in read_formatted_entries() argument
2484 bfd *abfd = unit->abfd; in read_formatted_entries()
2557 buf = read_attribute_value (&attr, form, 0, unit, buf, buf_end); in read_formatted_entries()
2599 decode_line_info (struct comp_unit *unit) in decode_line_info() argument
2601 bfd *abfd = unit->abfd; in decode_line_info()
2602 struct dwarf2_debug *stash = unit->stash; in decode_line_info()
2603 struct dwarf2_debug_file *file = unit->file; in decode_line_info()
2614 if (unit->line_offset == 0 && file->line_table) in decode_line_info()
2618 file->syms, unit->line_offset, in decode_line_info()
2630 line_ptr = file->dwarf_line_buffer + unit->line_offset; in decode_line_info()
2641 else if (lh.total_length == 0 && unit->addr_size == 8) in decode_line_info()
2742 table->comp_dir = unit->comp_dir; in decode_line_info()
2758 if (!read_formatted_entries (unit, &line_ptr, line_end, table, in decode_line_info()
2763 if (!read_formatted_entries (unit, &line_ptr, line_end, table, in decode_line_info()
2863 if (!arange_add (unit, &unit->arange, &unit->file->trie_root, in decode_line_info()
2868 address = read_address (unit, &line_ptr, line_end); in decode_line_info()
2979 if (unit->line_offset == 0) in decode_line_info()
3071 read_debug_ranges (struct comp_unit * unit) in read_debug_ranges() argument
3073 struct dwarf2_debug *stash = unit->stash; in read_debug_ranges()
3074 struct dwarf2_debug_file *file = unit->file; in read_debug_ranges()
3076 return read_section (unit->abfd, &stash->debug_sections[debug_ranges], in read_debug_ranges()
3084 read_debug_rnglists (struct comp_unit * unit) in read_debug_rnglists() argument
3086 struct dwarf2_debug *stash = unit->stash; in read_debug_rnglists()
3087 struct dwarf2_debug_file *file = unit->file; in read_debug_rnglists()
3089 return read_section (unit->abfd, &stash->debug_sections[debug_rnglists], in read_debug_rnglists()
3119 build_lookup_funcinfo_table (struct comp_unit * unit) in build_lookup_funcinfo_table() argument
3121 struct lookup_funcinfo *lookup_funcinfo_table = unit->lookup_funcinfo_table; in build_lookup_funcinfo_table()
3122 unsigned int number_of_functions = unit->number_of_functions; in build_lookup_funcinfo_table()
3140 for (each = unit->function_table; each; each = each->prev_func) in build_lookup_funcinfo_table()
3181 unit->lookup_funcinfo_table = lookup_funcinfo_table; in build_lookup_funcinfo_table()
3191 lookup_address_in_function_table (struct comp_unit *unit, in lookup_address_in_function_table() argument
3195 unsigned int number_of_functions = unit->number_of_functions; in lookup_address_in_function_table()
3206 if (!build_lookup_funcinfo_table (unit)) in lookup_address_in_function_table()
3209 if (unit->lookup_funcinfo_table[number_of_functions - 1].high_addr < addr) in lookup_address_in_function_table()
3220 lookup_funcinfo = &unit->lookup_funcinfo_table[mid]; in lookup_address_in_function_table()
3236 if (addr < unit->lookup_funcinfo_table[first].low_addr) in lookup_address_in_function_table()
3238 funcinfo = unit->lookup_funcinfo_table[first].funcinfo; in lookup_address_in_function_table()
3272 lookup_symbol_in_function_table (struct comp_unit *unit, in lookup_symbol_in_function_table() argument
3285 for (each_func = unit->function_table; in lookup_symbol_in_function_table()
3324 lookup_symbol_in_variable_table (struct comp_unit *unit, in lookup_symbol_in_variable_table() argument
3334 for (each = unit->variable_table; each; each = each->prev_var) in lookup_symbol_in_variable_table()
3359 find_abstract_instance (struct comp_unit *unit, in find_abstract_instance() argument
3367 bfd *abfd = unit->abfd; in find_abstract_instance()
3405 info_ptr = unit->file->dwarf_info_buffer; in find_abstract_instance()
3406 info_ptr_end = info_ptr + unit->file->dwarf_info_size; in find_abstract_instance()
3421 bool first_time = unit->stash->alt.dwarf_info_buffer == NULL; in find_abstract_instance()
3423 info_ptr = read_alt_indirect_ref (unit, die_ref); in find_abstract_instance()
3425 unit->stash->alt.info_ptr = unit->stash->alt.dwarf_info_buffer; in find_abstract_instance()
3434 info_ptr_end = (unit->stash->alt.dwarf_info_buffer in find_abstract_instance()
3435 + unit->stash->alt.dwarf_info_size); in find_abstract_instance()
3436 if (unit->stash->alt.all_comp_units) in find_abstract_instance()
3437 unit = unit->stash->alt.all_comp_units; in find_abstract_instance()
3444 if (info_ptr >= unit->info_ptr_unit && info_ptr < unit->end_ptr) in find_abstract_instance()
3445 info_ptr_end = unit->end_ptr; in find_abstract_instance()
3451 for (u = unit->prev_unit; u != NULL; u = u->prev_unit) in find_abstract_instance()
3456 for (u = unit->next_unit; u != NULL; u = u->next_unit) in find_abstract_instance()
3463 u = stash_comp_unit (unit->stash, &unit->stash->f); in find_abstract_instance()
3474 u = stash_comp_unit (unit->stash, &unit->stash->alt); in find_abstract_instance()
3490 unit = u; in find_abstract_instance()
3491 info_ptr_end = unit->end_ptr; in find_abstract_instance()
3501 info_ptr = unit->info_ptr_unit; in find_abstract_instance()
3502 info_ptr_end = unit->end_ptr; in find_abstract_instance()
3518 abbrev = lookup_abbrev (abbrev_number, unit->abbrevs); in find_abstract_instance()
3530 info_ptr = read_attribute (&attr, &abbrev->attrs[i], unit, in find_abstract_instance()
3542 if (non_mangled (unit->lang)) in find_abstract_instance()
3548 && !find_abstract_instance (unit, &attr, recur_count + 1, in find_abstract_instance()
3564 if (!comp_unit_maybe_decode_line_info (unit)) in find_abstract_instance()
3567 *filename_ptr = concat_filename (unit->line_table, in find_abstract_instance()
3585 read_ranges (struct comp_unit *unit, struct arange *arange, in read_ranges() argument
3590 bfd_vma base_address = unit->base_address; in read_ranges()
3592 if (! unit->file->dwarf_ranges_buffer) in read_ranges()
3594 if (! read_debug_ranges (unit)) in read_ranges()
3598 if (offset > unit->file->dwarf_ranges_size) in read_ranges()
3600 ranges_ptr = unit->file->dwarf_ranges_buffer + offset; in read_ranges()
3601 ranges_end = unit->file->dwarf_ranges_buffer + unit->file->dwarf_ranges_size; in read_ranges()
3609 if (2u * unit->addr_size > (size_t) (ranges_end - ranges_ptr)) in read_ranges()
3612 low_pc = read_address (unit, &ranges_ptr, ranges_end); in read_ranges()
3613 high_pc = read_address (unit, &ranges_ptr, ranges_end); in read_ranges()
3621 if (!arange_add (unit, arange, trie_root, in read_ranges()
3630 read_rnglists (struct comp_unit *unit, struct arange *arange, in read_rnglists() argument
3635 bfd_vma base_address = unit->base_address; in read_rnglists()
3638 bfd *abfd = unit->abfd; in read_rnglists()
3640 if (! unit->file->dwarf_rnglists_buffer) in read_rnglists()
3642 if (! read_debug_rnglists (unit)) in read_rnglists()
3646 rngs_ptr = unit->file->dwarf_rnglists_buffer + offset; in read_rnglists()
3647 if (rngs_ptr < unit->file->dwarf_rnglists_buffer) in read_rnglists()
3649 rngs_end = unit->file->dwarf_rnglists_buffer; in read_rnglists()
3650 rngs_end += unit->file->dwarf_rnglists_size; in read_rnglists()
3667 if (unit->addr_size > (size_t) (rngs_end - rngs_ptr)) in read_rnglists()
3669 base_address = read_address (unit, &rngs_ptr, rngs_end); in read_rnglists()
3673 if (unit->addr_size > (size_t) (rngs_end - rngs_ptr)) in read_rnglists()
3675 low_pc = read_address (unit, &rngs_ptr, rngs_end); in read_rnglists()
3691 if (2u * unit->addr_size > (size_t) (rngs_end - rngs_ptr)) in read_rnglists()
3693 low_pc = read_address (unit, &rngs_ptr, rngs_end); in read_rnglists()
3694 high_pc = read_address (unit, &rngs_ptr, rngs_end); in read_rnglists()
3705 if (!arange_add (unit, arange, trie_root, low_pc, high_pc)) in read_rnglists()
3711 read_rangelist (struct comp_unit *unit, struct arange *arange, in read_rangelist() argument
3714 if (unit->version <= 4) in read_rangelist()
3715 return read_ranges (unit, arange, trie_root, offset); in read_rangelist()
3717 return read_rnglists (unit, arange, trie_root, offset); in read_rangelist()
3779 scan_unit_for_symbols (struct comp_unit *unit) in scan_unit_for_symbols() argument
3781 bfd *abfd = unit->abfd; in scan_unit_for_symbols()
3782 bfd_byte *info_ptr = unit->first_child_die_ptr; in scan_unit_for_symbols()
3783 bfd_byte *info_ptr_end = unit->end_ptr; in scan_unit_for_symbols()
3818 current_offset = info_ptr - unit->info_ptr_unit; in scan_unit_for_symbols()
3827 abbrev = lookup_abbrev (abbrev_number, unit->abbrevs); in scan_unit_for_symbols()
3855 func->prev_func = unit->function_table; in scan_unit_for_symbols()
3857 unit->function_table = func; in scan_unit_for_symbols()
3858 unit->number_of_functions++; in scan_unit_for_symbols()
3859 BFD_ASSERT (!unit->cached); in scan_unit_for_symbols()
3883 var->prev_var = unit->variable_table; in scan_unit_for_symbols()
3884 unit->variable_table = var; in scan_unit_for_symbols()
3901 unit, info_ptr, info_ptr_end); in scan_unit_for_symbols()
3926 unit->function_table = reverse_funcinfo_list (unit->function_table); in scan_unit_for_symbols()
3927 unit->variable_table = reverse_varinfo_list (unit->variable_table); in scan_unit_for_symbols()
3930 info_ptr = unit->first_child_die_ptr; in scan_unit_for_symbols()
3952 current_offset = info_ptr - unit->info_ptr_unit; in scan_unit_for_symbols()
3961 abbrev = lookup_abbrev (abbrev_number, unit->abbrevs); in scan_unit_for_symbols()
3976 func = lookup_func_by_offset (current_offset, unit->function_table); in scan_unit_for_symbols()
3991 var = lookup_var_by_offset (current_offset, unit->variable_table); in scan_unit_for_symbols()
4002 unit, info_ptr, info_ptr_end); in scan_unit_for_symbols()
4012 func->caller_file = concat_filename (unit->line_table, in scan_unit_for_symbols()
4024 && !find_abstract_instance (unit, &attr, 0, in scan_unit_for_symbols()
4038 if (non_mangled (unit->lang)) in scan_unit_for_symbols()
4069 && !read_rangelist (unit, &func->arange, in scan_unit_for_symbols()
4070 &unit->file->trie_root, attr.u.val)) in scan_unit_for_symbols()
4076 func->file = concat_filename (unit->line_table, in scan_unit_for_symbols()
4099 unit->variable_table); in scan_unit_for_symbols()
4127 var->file = concat_filename (unit->line_table, in scan_unit_for_symbols()
4160 if (attr.u.blk->size == unit->addr_size + 1U) in scan_unit_for_symbols()
4161 var->addr = bfd_get (unit->addr_size * 8, in scan_unit_for_symbols()
4162 unit->abfd, in scan_unit_for_symbols()
4186 if (!arange_add (unit, &func->arange, &unit->file->trie_root, in scan_unit_for_symbols()
4192 unit->function_table = reverse_funcinfo_list (unit->function_table); in scan_unit_for_symbols()
4193 unit->variable_table = reverse_varinfo_list (unit->variable_table); in scan_unit_for_symbols()
4206 reread_attribute (struct comp_unit *unit, in reread_attribute() argument
4214 attr->u.str = (char *) read_indexed_string (attr->u.val, unit); in reread_attribute()
4216 attr->u.val = read_indexed_address (attr->u.val, unit); in reread_attribute()
4221 unit->stmtlist = 1; in reread_attribute()
4222 unit->line_offset = attr->u.val; in reread_attribute()
4227 unit->name = attr->u.str; in reread_attribute()
4233 unit->base_address = *low_pc; in reread_attribute()
4242 if (!read_rangelist (unit, &unit->arange, in reread_attribute()
4243 &unit->file->trie_root, attr->u.val)) in reread_attribute()
4266 unit->comp_dir = comp_dir; in reread_attribute()
4271 unit->lang = attr->u.val; in reread_attribute()
4294 struct comp_unit* unit; in parse_comp_unit() local
4405 unit = (struct comp_unit *) bfd_zalloc (abfd, amt); in parse_comp_unit()
4406 if (unit == NULL) in parse_comp_unit()
4408 unit->abfd = abfd; in parse_comp_unit()
4409 unit->version = version; in parse_comp_unit()
4410 unit->addr_size = addr_size; in parse_comp_unit()
4411 unit->offset_size = offset_size; in parse_comp_unit()
4412 unit->abbrevs = abbrevs; in parse_comp_unit()
4413 unit->end_ptr = end_ptr; in parse_comp_unit()
4414 unit->stash = stash; in parse_comp_unit()
4415 unit->file = file; in parse_comp_unit()
4416 unit->info_ptr_unit = info_ptr_unit; in parse_comp_unit()
4423 info_ptr = read_attribute (&attr, &abbrev->attrs[i], unit, info_ptr, end_ptr); in parse_comp_unit()
4430 if ((unit->dwarf_str_offset == 0 && is_strx_form (attr.form)) in parse_comp_unit()
4431 || (unit->dwarf_addr_offset == 0 && is_addrx_form (attr.form))) in parse_comp_unit()
4453 unit->stmtlist = 1; in parse_comp_unit()
4454 unit->line_offset = attr.u.val; in parse_comp_unit()
4460 unit->name = attr.u.str; in parse_comp_unit()
4471 unit->base_address = low_pc; in parse_comp_unit()
4485 && !read_rangelist (unit, &unit->arange, in parse_comp_unit()
4486 &unit->file->trie_root, attr.u.val)) in parse_comp_unit()
4511 unit->comp_dir = comp_dir; in parse_comp_unit()
4517 unit->lang = attr.u.val; in parse_comp_unit()
4521 unit->dwarf_addr_offset = attr.u.val; in parse_comp_unit()
4525 unit->dwarf_str_offset = attr.u.val; in parse_comp_unit()
4534 reread_attribute (unit, &str_addrp[i], &low_pc, &high_pc, in parse_comp_unit()
4541 if (!arange_add (unit, &unit->arange, &unit->file->trie_root, in parse_comp_unit()
4546 unit->first_child_die_ptr = info_ptr; in parse_comp_unit()
4549 return unit; in parse_comp_unit()
4552 unit->error = 1; in parse_comp_unit()
4564 comp_unit_contains_address (struct comp_unit *unit, bfd_vma addr) in comp_unit_contains_address() argument
4568 if (unit->error) in comp_unit_contains_address()
4571 arange = &unit->arange; in comp_unit_contains_address()
4589 comp_unit_find_nearest_line (struct comp_unit *unit, in comp_unit_find_nearest_line() argument
4598 if (!comp_unit_maybe_decode_line_info (unit)) in comp_unit_find_nearest_line()
4602 func_p = lookup_address_in_function_table (unit, addr, function_ptr); in comp_unit_find_nearest_line()
4604 unit->stash->inliner_chain = *function_ptr; in comp_unit_find_nearest_line()
4606 line_p = lookup_address_in_line_info_table (unit->line_table, addr, in comp_unit_find_nearest_line()
4618 comp_unit_maybe_decode_line_info (struct comp_unit *unit) in comp_unit_maybe_decode_line_info() argument
4620 if (unit->error) in comp_unit_maybe_decode_line_info()
4623 if (! unit->line_table) in comp_unit_maybe_decode_line_info()
4625 if (! unit->stmtlist) in comp_unit_maybe_decode_line_info()
4627 unit->error = 1; in comp_unit_maybe_decode_line_info()
4631 unit->line_table = decode_line_info (unit); in comp_unit_maybe_decode_line_info()
4633 if (! unit->line_table) in comp_unit_maybe_decode_line_info()
4635 unit->error = 1; in comp_unit_maybe_decode_line_info()
4639 if (unit->first_child_die_ptr < unit->end_ptr in comp_unit_maybe_decode_line_info()
4640 && ! scan_unit_for_symbols (unit)) in comp_unit_maybe_decode_line_info()
4642 unit->error = 1; in comp_unit_maybe_decode_line_info()
4659 comp_unit_find_line (struct comp_unit *unit, in comp_unit_find_line() argument
4665 if (!comp_unit_maybe_decode_line_info (unit)) in comp_unit_find_line()
4669 return lookup_symbol_in_function_table (unit, sym, addr, in comp_unit_find_line()
4673 return lookup_symbol_in_variable_table (unit, sym, addr, in comp_unit_find_line()
4684 struct comp_unit *unit, in comp_unit_hash_info() argument
4694 if (!comp_unit_maybe_decode_line_info (unit)) in comp_unit_hash_info()
4697 BFD_ASSERT (!unit->cached); in comp_unit_hash_info()
4704 unit->function_table = reverse_funcinfo_list (unit->function_table); in comp_unit_hash_info()
4705 for (each_func = unit->function_table; in comp_unit_hash_info()
4717 unit->function_table = reverse_funcinfo_list (unit->function_table); in comp_unit_hash_info()
4722 unit->variable_table = reverse_varinfo_list (unit->variable_table); in comp_unit_hash_info()
4723 for (each_var = unit->variable_table; in comp_unit_hash_info()
4738 unit->variable_table = reverse_varinfo_list (unit->variable_table); in comp_unit_hash_info()
4739 unit->cached = true; in comp_unit_hash_info()
5572 struct comp_unit * unit; in _bfd_dwarf2_find_symbol_bias() local
5595 for (unit = stash->f.all_comp_units; unit; unit = unit->next_unit) in _bfd_dwarf2_find_symbol_bias()
5599 comp_unit_maybe_decode_line_info (unit); in _bfd_dwarf2_find_symbol_bias()
5601 for (func = unit->function_table; func != NULL; func = func->prev_func) in _bfd_dwarf2_find_symbol_bias()
5793 leaf->ranges[i].unit->mark = false; in _bfd_dwarf2_find_nearest_line()
5797 struct comp_unit *unit = leaf->ranges[i].unit; in _bfd_dwarf2_find_nearest_line() local
5798 if (unit->mark in _bfd_dwarf2_find_nearest_line()
5802 unit->mark = true; in _bfd_dwarf2_find_nearest_line()
5804 found = comp_unit_find_nearest_line (unit, addr, in _bfd_dwarf2_find_nearest_line()