diff options
author | Paul Robinson <paul_robinson@playstation.sony.com> | 2016-04-18 22:41:41 +0000 |
---|---|---|
committer | Paul Robinson <paul_robinson@playstation.sony.com> | 2016-04-18 22:41:41 +0000 |
commit | 43d1e453479fe60046c06c83c7020a2a52ce9748 (patch) | |
tree | 05003b91e4747f596893e59d1c9ce9da7499b386 /llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h | |
parent | 83162abb07dedaddbe0e126d612a859e5d264d24 (diff) | |
download | bcm5719-llvm-43d1e453479fe60046c06c83c7020a2a52ce9748.tar.gz bcm5719-llvm-43d1e453479fe60046c06c83c7020a2a52ce9748.zip |
[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
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h index c5861497f64..ad0241cb99b 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -249,8 +249,8 @@ class DwarfDebug : public DebugHandlerBase { /// Whether to use the GNU TLS opcode (instead of the standard opcode). bool UseGNUTLSOpcode; - /// Whether to emit DW_AT_[MIPS_]linkage_name. - bool UseLinkageNames; + /// Whether to emit all linkage names, or just abstract subprograms. + bool UseAllLinkageNames; /// Version of dwarf we're emitting. unsigned DwarfVersion; @@ -478,8 +478,9 @@ public: SymSize[Sym] = Size; } - /// Returns whether to emit DW_AT_[MIPS_]linkage_name. - bool useLinkageNames() const { return UseLinkageNames; } + /// Returns whether we should emit all DW_AT_[MIPS_]linkage_name. + /// If not, we still might emit certain cases. + bool useAllLinkageNames() const { return UseAllLinkageNames; } /// Returns whether to use DW_OP_GNU_push_tls_address, instead of the /// standard DW_OP_form_tls_address opcode |