diff options
author | Adrian Prantl <aprantl@apple.com> | 2017-04-24 18:11:38 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2017-04-24 18:11:38 +0000 |
commit | 283833d022705252ca43e9a2d24eebabd43fe213 (patch) | |
tree | 4db1fa0248e4208c0de255dc5cf48b1e3920014e /llvm/lib/CodeGen | |
parent | 1c0ae3972f79c0d0bcbf15261308add2e6065358 (diff) | |
download | bcm5719-llvm-283833d022705252ca43e9a2d24eebabd43fe213.tar.gz bcm5719-llvm-283833d022705252ca43e9a2d24eebabd43fe213.zip |
Add a testcase for DIExpression(DW_OP_stack_value)
and relax the assertion that prohibited its emission.
This fixes the assertion failure uncovered by r301093.
llvm-svn: 301209
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 58416a0334a..8bce12aaa4d 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -856,6 +856,8 @@ static bool emitDebugValueComment(const MachineInstr *MI, AsmPrinter &AP) { uint64_t ExtraOffset = Expr->getElement(i++); if (Op == dwarf::DW_OP_plus) Offset += ExtraOffset; + else if (Op == dwarf::DW_OP_stack_value) + OS << " [stack value]"; else { assert(Op == dwarf::DW_OP_minus); Offset -= ExtraOffset; diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp index f65dc151f30..51ae1781a51 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp @@ -343,7 +343,6 @@ void DwarfExpression::addExpression(DIExpressionCursor &&ExprCursor, emitUnsigned(Op->getArg(0)); break; case dwarf::DW_OP_stack_value: - assert(LocationKind == Unknown || LocationKind == Implicit); LocationKind = Implicit; break; case dwarf::DW_OP_swap: |