diff --git a/llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp b/llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp index 1c523c0131497..404b957893331 100644 --- a/llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp +++ b/llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp @@ -369,6 +369,9 @@ void LVDWARFReader::processOneAttribute(const DWARFDie &Die, case dwarf::DW_AT_name: CurrentElement->setName(dwarf::toStringRef(FormValue)); break; + case dwarf::DW_AT_GNU_template_name: + CurrentElement->setValue(dwarf::toStringRef(FormValue)); + break; case dwarf::DW_AT_linkage_name: case dwarf::DW_AT_MIPS_linkage_name: CurrentElement->setLinkageName(dwarf::toStringRef(FormValue)); diff --git a/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/DW_AT_GNU_template_name.test b/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/DW_AT_GNU_template_name.test new file mode 100644 index 0000000000000..46cdae39e15e5 --- /dev/null +++ b/llvm/test/tools/llvm-debuginfo-analyzer/DWARF/DW_AT_GNU_template_name.test @@ -0,0 +1,60 @@ +; REQUIRES: x86-registered-target + +; For the given test case: + +; 1 // Template Template parameters. +; 2 // Simple template class +; 3 template class Foo { T Member; }; +; 4 +; 5 // Template template class +; 6 template