Skip to content

Commit a69439e

Browse files
committed
[llvm][DebugInfo] Emit DW_AT_lanugage_name
1 parent 79c8485 commit a69439e

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

llvm/include/llvm/BinaryFormat/Dwarf.def

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,8 @@ HANDLE_DW_AT(0x89, export_symbols, 5, DWARF)
424424
HANDLE_DW_AT(0x8a, deleted, 5, DWARF)
425425
HANDLE_DW_AT(0x8b, defaulted, 5, DWARF)
426426
HANDLE_DW_AT(0x8c, loclists_base, 5, DWARF)
427+
// New in Dwarf v6:
428+
HANDLE_DW_AT(0x90, language_name, 6, DWARF)
427429

428430
// Vendor extensions:
429431
HANDLE_DW_AT(0x806, GHS_namespace_alias, 0, GHS)

llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,8 +1039,12 @@ void DwarfDebug::finishUnitAttributes(const DICompileUnit *DIUnit,
10391039
} else
10401040
NewCU.addString(Die, dwarf::DW_AT_producer, Producer);
10411041

1042-
NewCU.addUInt(Die, dwarf::DW_AT_language, dwarf::DW_FORM_data2,
1043-
DIUnit->getSourceLanguage().getUnversionedName());
1042+
if (auto Lang = DIUnit->getSourceLanguage(); Lang.hasVersionedName())
1043+
NewCU.addUInt(Die, dwarf::DW_AT_language_name, dwarf::DW_FORM_data2,
1044+
Lang.getName());
1045+
else
1046+
NewCU.addUInt(Die, dwarf::DW_AT_language, dwarf::DW_FORM_data2,
1047+
Lang.getName());
10441048

10451049
NewCU.addString(Die, dwarf::DW_AT_name, FN);
10461050
StringRef SysRoot = DIUnit->getSysRoot();

0 commit comments

Comments
 (0)