diff options
| author | Adrian Prantl <aprantl@apple.com> | 2014-04-11 17:49:47 +0000 |
|---|---|---|
| committer | Adrian Prantl <aprantl@apple.com> | 2014-04-11 17:49:47 +0000 |
| commit | 3bdcb52dd15639468f1b597b17c2a5addc0f8cb7 (patch) | |
| tree | 318e532963d4a28c83499b74b1d395b7b9467826 /llvm/lib/CodeGen | |
| parent | 9ec3cf2c8a22b7690ea2a18aabb980506313c9b4 (diff) | |
| download | bcm5719-llvm-3bdcb52dd15639468f1b597b17c2a5addc0f8cb7.tar.gz bcm5719-llvm-3bdcb52dd15639468f1b597b17c2a5addc0f8cb7.zip | |
Debug info: Store the DIVariable in DebugLocEntry also for constants,
so DwarfDebug::emitDebugLocEntry can emit them with the correct signedness.
rdar://problem/15928306
llvm-svn: 206042
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h | 12 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 8 |
2 files changed, 11 insertions, 9 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h b/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h index 470453fbe26..7ca9443594b 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h +++ b/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h @@ -76,20 +76,20 @@ public: EntryKind = E_Location; } DebugLocEntry(const MCSymbol *B, const MCSymbol *E, int64_t i, - const DwarfCompileUnit *U) - : Begin(B), End(E), Variable(0), Unit(U) { + const MDNode *V, const DwarfCompileUnit *U) + : Begin(B), End(E), Variable(V), Unit(U) { Constants.Int = i; EntryKind = E_Integer; } DebugLocEntry(const MCSymbol *B, const MCSymbol *E, const ConstantFP *FPtr, - const DwarfCompileUnit *U) - : Begin(B), End(E), Variable(0), Unit(U) { + const MDNode *V, const DwarfCompileUnit *U) + : Begin(B), End(E), Variable(V), Unit(U) { Constants.CFP = FPtr; EntryKind = E_ConstantFP; } DebugLocEntry(const MCSymbol *B, const MCSymbol *E, const ConstantInt *IPtr, - const DwarfCompileUnit *U) - : Begin(B), End(E), Variable(0), Unit(U) { + const MDNode *V, const DwarfCompileUnit *U) + : Begin(B), End(E), Variable(V), Unit(U) { Constants.CIP = IPtr; EntryKind = E_ConstantInt; } diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index fde3604e04f..83b340f67ae 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -1212,11 +1212,13 @@ static DebugLocEntry getDebugLocEntry(AsmPrinter *Asm, return DebugLocEntry(FLabel, SLabel, MLoc, Var, Unit); } if (MI->getOperand(0).isImm()) - return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getImm(), Unit); + return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getImm(), Var, Unit); if (MI->getOperand(0).isFPImm()) - return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getFPImm(), Unit); + return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getFPImm(), + Var, Unit); if (MI->getOperand(0).isCImm()) - return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getCImm(), Unit); + return DebugLocEntry(FLabel, SLabel, MI->getOperand(0).getCImm(), + Var, Unit); llvm_unreachable("Unexpected 3 operand DBG_VALUE instruction!"); } |

