diff options
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp | 8 |
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 " |