mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 04:33:05 +00:00
Fix the encoding of negative line deltas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118962 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
32c7a5e08c
commit
64185cc609
@ -179,7 +179,7 @@ static inline void EmitDwarfLineTable(MCObjectStreamer *MCOS,
|
||||
if (it->getFlags() & DWARF2_FLAG_EPILOGUE_BEGIN)
|
||||
MCOS->EmitIntValue(dwarf::DW_LNS_set_epilogue_begin, 1);
|
||||
|
||||
int64_t LineDelta = it->getLine() - LastLine;
|
||||
int64_t LineDelta = static_cast<int64_t>(it->getLine()) - LastLine;
|
||||
MCSymbol *Label = it->getLabel();
|
||||
|
||||
// At this point we want to emit/create the sequence to encode the delta in
|
||||
|
32
test/MC/ELF/debug-loc.s
Normal file
32
test/MC/ELF/debug-loc.s
Normal file
@ -0,0 +1,32 @@
|
||||
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
|
||||
|
||||
// Test that we don't regress on the size of the line info section. We used
|
||||
// to handle negative line diffs incorrectly which manifested as very
|
||||
// large integers being passed to DW_LNS_advance_line.
|
||||
|
||||
// FIXME: This size is the same as gnu as, but we can probably do a bit better.
|
||||
// FIXME2: We need a debug_line dumper so that we can test the actual contents.
|
||||
|
||||
// CHECK: # Section 0x00000004
|
||||
// CHECK-NEXT: (('sh_name', 0x00000012) # '.debug_line'
|
||||
// CHECK-NEXT: ('sh_type', 0x00000001)
|
||||
// CHECK-NEXT: ('sh_flags', 0x00000000)
|
||||
// CHECK-NEXT: ('sh_addr', 0x00000000)
|
||||
// CHECK-NEXT: ('sh_offset', 0x00000044)
|
||||
// CHECK-NEXT: ('sh_size', 0x0000003d)
|
||||
// CHECK-NEXT: ('sh_link', 0x00000000)
|
||||
// CHECK-NEXT: ('sh_info', 0x00000000)
|
||||
// CHECK-NEXT: ('sh_addralign', 0x00000001)
|
||||
// CHECK-NEXT: ('sh_entsize', 0x00000000)
|
||||
// CHECK-NEXT: ),
|
||||
|
||||
.section .debug_line,"",@progbits
|
||||
.text
|
||||
foo:
|
||||
.file 1 "Driver.ii"
|
||||
.loc 1 2 0
|
||||
nop
|
||||
.loc 1 4 0
|
||||
nop
|
||||
.loc 1 3 0
|
||||
nop
|
Loading…
Reference in New Issue
Block a user