https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119214
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #3) > I guess the options are pretend that FOO is an inlined call for debug info > purposes (so DW_TAG_subprogram is created for it and the statements > belonging are wrapped in DW_TAG_inlined_subroutine). That would be a matter > of emitting an abstract instance for the "function" and tweaking relevant > BLOCKs such that it appears the same as inlined functions. Perhaps with > some extension attribute to mark the DW_TAG_subprogram > as COBOL division. > Or talk to DWARF committee to add some feature for it, see > https://dwarfstd.org/comment.html So, the .text addresses you are communicating via your symbols are done in DWARF via attributes like DW_AT_low_pc, DW_AT_high_pc or DW_AT_ranges. Those attributes are attached to entities like DW_TAG_lexical_block, DW_TAG_subprogram or DW_TAG_inlined_subroutine but also DW_TAG_label. The most pragmatic way to change your assembler labels would be to make them LABEL_DECLs in GENERIC which would get DW_AT_low_pc attributes. I think labels are possibly the best "fit" for the COBOL NAME. things even though that's just one of the endpoints. You could insert artificial "end-of-NAME" labels or as Jakub says, see to get a better explicit thing. I'm not sure a DW_TAG_lexical_block is a good fit, nor DW_TAG_inlined_subroutine.