summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
diff options
context:
space:
mode:
authorAwanish Pandey <Awanish.Pandey@amd.com>2020-01-13 11:56:18 +0530
committerSourabh Singh Tomar <SourabhSingh.Tomar@amd.com>2020-01-13 12:26:13 +0530
commitc958639098a8702b831952b1a1a677ae19190a55 (patch)
tree74a3d209769cb9752586984d8acbdf7c2a1b8f2f /llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
parent52aaf4a27576607dfc0833f5f88e5a15a30ceadb (diff)
downloadbcm5719-llvm-c958639098a8702b831952b1a1a677ae19190a55.tar.gz
bcm5719-llvm-c958639098a8702b831952b1a1a677ae19190a55.zip
[DWARF5][DebugInfo]: Added support for DebugInfo generation for auto return type for C++ member functions.
Summary: This patch will provide support for auto return type for the C++ member functions. Before this return type of the member function is deduced and stored in the DIE. This patch includes llvm side implementation of this feature. Patch by: Awanish Pandey <Awanish.Pandey@amd.com> Reviewers: dblaikie, aprantl, shafik, alok, SouraVX, jini.susan.george Reviewed by: dblaikie Differential Revision: https://reviews.llvm.org/D70524
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
index 1aba956c48d..3e68811ce2b 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
@@ -1165,6 +1165,14 @@ bool DwarfUnit::applySubprogramDefinitionAttributes(const DISubprogram *SP,
DIE *DeclDie = nullptr;
StringRef DeclLinkageName;
if (auto *SPDecl = SP->getDeclaration()) {
+ DITypeRefArray DeclArgs, DefinationArgs;
+ DeclArgs = SPDecl->getType()->getTypeArray();
+ DefinationArgs = SP->getType()->getTypeArray();
+
+ if (DeclArgs.size() && DefinationArgs.size())
+ if (DeclArgs[0] != DefinationArgs[0])
+ addType(SPDie, DefinationArgs[0]);
+
DeclDie = getDIE(SPDecl);
assert(DeclDie && "This DIE should've already been constructed when the "
"definition DIE was created in "
OpenPOWER on IntegriCloud