summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2014-02-25 22:27:14 +0000
committerAdrian Prantl <aprantl@apple.com>2014-02-25 22:27:14 +0000
commit69140d2c0f089bea7e7ee1b317fa881e4b818d79 (patch)
tree92e596bfc8ebfbf037453f83c5b5493278f3b169 /llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
parent248ac139752aa61eab97ce6b80bb4160da4bd5fa (diff)
downloadbcm5719-llvm-69140d2c0f089bea7e7ee1b317fa881e4b818d79.tar.gz
bcm5719-llvm-69140d2c0f089bea7e7ee1b317fa881e4b818d79.zip
Address review comments for r202188.
This is refactoring / simplifying code, updating comments and enabling the testcase on non-x86 platforms. No functionality change. llvm-svn: 202199
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp20
1 files changed, 2 insertions, 18 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 3c5868111d7..b18e8d49ac0 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -403,22 +403,7 @@ DIE *DwarfDebug::updateSubprogramScopeDIE(DwarfCompileUnit *SPCU,
DIArray Args = SPTy.getTypeArray();
uint16_t SPTag = SPTy.getTag();
if (SPTag == dwarf::DW_TAG_subroutine_type)
- // FIXME: Use DwarfUnit::constructSubprogramArguments() here.
- for (unsigned i = 1, N = Args.getNumElements(); i < N; ++i) {
- DIType ATy(Args.getElement(i));
- if (ATy.isUnspecifiedParameter()) {
- assert(i == N-1 && "ellipsis must be the last argument");
- SPCU->createAndAddDIE(dwarf::DW_TAG_unspecified_parameters, *SPDie);
- } else {
- DIE *Arg =
- SPCU->createAndAddDIE(dwarf::DW_TAG_formal_parameter, *SPDie);
- SPCU->addType(Arg, ATy);
- if (ATy.isArtificial())
- SPCU->addFlag(Arg, dwarf::DW_AT_artificial);
- if (ATy.isObjectPointer())
- SPCU->addDIEEntry(SPDie, dwarf::DW_AT_object_pointer, Arg);
- }
- }
+ SPCU->constructSubprogramArguments(*SPDie, Args);
DIE *SPDeclDie = SPDie;
SPDie = SPCU->createAndAddDIE(dwarf::DW_TAG_subprogram,
*SPCU->getUnitDie());
@@ -598,9 +583,8 @@ DIE *DwarfDebug::createScopeChildrenDIE(DwarfCompileUnit *TheCU,
ObjectPointer = Arg;
}
- // Create the unspecified parameter that marks a function as variadic.
+ // If this is a variadic function, add an unspecified parameter.
DISubprogram SP(Scope->getScopeNode());
- assert(SP.Verify());
DIArray FnArgs = SP.getType().getTypeArray();
if (FnArgs.getElement(FnArgs.getNumElements()-1).isUnspecifiedParameter()) {
DIE *Ellipsis = new DIE(dwarf::DW_TAG_unspecified_parameters);
OpenPOWER on IntegriCloud