[llvm-dev] Potential DWARF debug info bug: DW_TAG_label DIE has a DW_AT_prototyped attribute

Adrian Prantl via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 18 14:20:10 PST 2019

> On Jan 18, 2019, at 1:06 PM, Snider, Todd via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> In llvm/lib/MC/MCDwarf.cpp’s EmitGenDwarfAbbrev(), the DWARF abbreviation declaration for a DW_TAG_label includes a DW_AT_prototyped attribute, but the DWARF 4 specification indicates that the DW_AT_prototyped attribute is not a valid attribute for the DW_TAG_label debug information entry (DIE). In this case, EmitGenDwarfAbbrev() is clearly in violation of the DWARF 4 specification.
> However, I notice that one of the MachO lit tests is expecting the DW_TAG_label DIE to contain a DW_AT_prototyped attribute whose value is false (llvm/test/MC/MachO/gen-dwarf.s).
> Does the DW_AT_prototyped attribute sever any purpose or provide any value in the context of a DW_TAG_label DIE?
> If not, I propose to remove the call to EmitAbbrev() on behalf of the DW_AT_prototyped attribute for a DW_TAG_label in EmitGenDwarfAbbrev().

I don't think that any Mach-O DWARF consumer depends on the presence of DW_TAG_prototyped inside of a DW_TAG_label. The only occurrence of DW_TAG_prototyped inside of LLDB for example is in a switch statement of attributes that are ignored...

Feel free to add me (and the "debug-info" group) as a reviewer for the patch in phabricator.


More information about the llvm-dev mailing list