https://sourceware.org/bugzilla/show_bug.cgi?id=30783

--- Comment #11 from Sourceware Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jan Beulich <[email protected]>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0e00e431608f6d5bf79348471b321ec35f318ee6

commit 0e00e431608f6d5bf79348471b321ec35f318ee6
Author: bhkumarn <[email protected]>
Date:   Fri Nov 6 14:14:05 2026 +0100

    bfd: Fix addr2line for skipped DW_FORM_ref_addr CUs and DWARF5 one-file
line tables

    For clang compiled objects, addr2line can miss a later compilation unit
    when an earlier CU is scanned and DW_FORM_ref_addr causes stash_comp_unit
    to parse ahead.  Those units never go through the sequential reader.
    Queue them on unsearched_units and search only that small set.

    Separately, PR 30783 starts the DWARF5 line state machine at file
    index 1.  A table that contains only file 0 then reports a bad file
    number.  Keep the initial index at 1 when that slot exists; fall back
    to file 0 only for a one-entry DWARF5 table.

    bfd/
            * dwarf2.c (struct dwarf2_debug_file): Add unsearched_units.
            (struct comp_unit): Add next_unsearched.
            (decode_line_info): Fall back to file 0 when a DWARF5 line
            table has no file 1.
            (find_abstract_instance): Queue CUs parsed via DW_FORM_ref_addr
            or DW_FORM_GNU_ref_alt.
            (_bfd_dwarf2_find_nearest_line_with_alt): Drain unsearched_units
            as a work queue after the sequential scan.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to