[DWARF] Force a linkage_name on an inlined subprogram's abstract origin.
authorPaul Robinson <paul_robinson@playstation.sony.com>
Mon, 18 Apr 2016 22:41:41 +0000 (22:41 +0000)
committerPaul Robinson <paul_robinson@playstation.sony.com>
Mon, 18 Apr 2016 22:41:41 +0000 (22:41 +0000)
commit43d1e453479fe60046c06c83c7020a2a52ce9748
tree05003b91e4747f596893e59d1c9ce9da7499b386
parent83162abb07dedaddbe0e126d612a859e5d264d24
[DWARF] Force a linkage_name on an inlined subprogram's abstract origin.

When we suppress linkage names, for a non-inlined subprogram the name
can still be found in the object-file symbol table, because we have
the code address of the subprogram.  This is not necessarily the case
for an inlined subprogram, so we still want to emit the linkage name
in the DWARF.  Put this on the abstract-origin DIE because it's common
to all inlined instances.

Differential Revision: http://reviews.llvm.org/D18706

llvm-svn: 266692
12 files changed:
llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
llvm/test/DebugInfo/Generic/PR20038.ll
llvm/test/DebugInfo/Generic/cross-cu-inlining.ll
llvm/test/DebugInfo/Generic/enum-types.ll
llvm/test/DebugInfo/Generic/linkage-name-abstract.ll [new file with mode: 0644]
llvm/test/DebugInfo/Generic/namespace.ll
llvm/test/DebugInfo/Generic/namespace_function_definition.ll
llvm/test/DebugInfo/Generic/namespace_inline_function_definition.ll
llvm/test/Linker/type-unique-odr-a.ll