[Bug ipa/97937] [11 Regression] Line numbers are missing from duplicated function

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu May 6 14:39:08 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97937

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Bernd Edlinger <edlinger@gcc.gnu.org>:

https://gcc.gnu.org/g:e69ac0203725fb8da83a1cc88d32191b7a0b2c0c

commit r12-574-ge69ac0203725fb8da83a1cc88d32191b7a0b2c0c
Author: Bernd Edlinger <bernd.edlinger@hotmail.de>
Date:   Tue Jan 12 16:27:53 2021 +0100

    Add line debug info for virtual thunks

    There is no debug info when the DECL_IGNORED_P flag
    is set.  But sometimes we have the line info of the
    function decl, as in the case of on virtual thunks.
    So instead of no line info at all, we emit at least
    the location of the function decl.
    On the other side, there are DECL_IGNORED_P functions
    which do not have any source line info at all.
    Remove those from the debug_range info, to make it
    clear for the debugger that the line info for these
    functions is invalid.  This has the effect that the
    debugger will not step into the function without
    debug info.

    2021-05-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>

            PR ipa/97937
            * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
            * dwarf2out.h (dw_fde_node::ignored_debug): New data item.
            * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
            set_ignored_loc callbacks.
            * debug.c (do_nothing_debug_hooks): Likewise.
            * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
            * dwarf2out.c (text_section_used, cold_text_section_used): Remove.
            (in_text_section_p, last_text_label, last_cold_label,
            switch_text_ranges, switch_cold_ranges): New data items.
            (dwarf2out_note_section_used): Remove.
            (dwarf2out_begin_prologue): Set fde->ignored_debug and
            in_text_section_p.
            (mark_ignored_debug_section): New helper function.
            (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
            mark_ignored_debug_section.
            (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
            (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
            (size_of_aranges): Adjust formula for multi-part text ranges size.
            (output_aranges): Output multi-part text ranges.
            (dwarf2out_set_ignored_loc): New callback function.
            (dwarf2out_finish): Output multi-part text ranges.
            (dwarf2out_c_finalize): Clear new data items.
            * final.c (final_start_function_1): Call set_ignored_loc callback.
            (final_scan_insn_1): Likewise.
            * ggc-page.c (gt_ggc_mx): New helper function.
            * stringpool.c (gt_pch_nx): Likewise.


More information about the Gcc-bugs mailing list