https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67696
Tom de Vries <vries at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ccoutant at gmail dot com, | |ian at airs dot com, | |jason at gcc dot gnu.org, | |pault at gcc dot gnu.org, | |vries at gcc dot gnu.org --- Comment #5 from Tom de Vries <vries at gcc dot gnu.org> --- The fact that the error showed up both with libbacktrace and gdb suggest that the debug information is wrong. It would have been good to see the DW_TAG_subprogram DIE for foo (using readelf -w), with the DW_AT_name and DW_AT_linkage_name attributes. This could have confirmed that the generated debug info was incorrect. Either way, with trunk I see: ... <2><126>: Abbrev Number: 5 (DW_TAG_subprogram) <127> DW_AT_external : 1 <127> DW_AT_name : (indirect string, offset: 0x31a): cp__b <12b> DW_AT_decl_file : 1 <12c> DW_AT_decl_line : 3 <12d> DW_AT_linkage_name: (indirect string, offset: 0x310): __foo_MOD_cp__b <131> DW_AT_low_pc : 0x400632 <139> DW_AT_high_pc : 0xe <141> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) <143> DW_AT_GNU_all_tail_call_sites: 1 ... and: ... Program aborted. Backtrace: #0 0x40063f in __foo_MOD_cp__b at /data/gcc_versions/devel/test2.f90:4 #1 0x400648 in test at /data/gcc_versions/devel/test2.f90:10 #2 0x40067f in main at /data/gcc_versions/devel/test2.f90:9 ... So, libbacktrace prints the DW_AT_linkage_name, as is the documented behaviour. Both the DW_AT_name and DW_AT_linkage name do not contain the 'cp(bool)' reported in comment 0. Propose to mark this resolved-fixed.