mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-13 09:33:50 +00:00
MC: correct DWARF line info for PE/COFF
DWARF address ranges contain a reference to the debug_info section. This offset is an absolute relocation except on non-PE/COFF targets where it is section relative. We would emit this incorrectly, and trying to map the debug info from the address would fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217317 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7cd7154421
commit
5f61134595
@ -613,7 +613,8 @@ static void EmitGenDwarfAranges(MCStreamer *MCOS,
|
||||
// The 4 byte offset to the compile unit in the .debug_info from the start
|
||||
// of the .debug_info.
|
||||
if (InfoSectionSymbol)
|
||||
MCOS->EmitSymbolValue(InfoSectionSymbol, 4);
|
||||
MCOS->EmitSymbolValue(InfoSectionSymbol, 4,
|
||||
asmInfo->needsDwarfSectionOffsetDirective());
|
||||
else
|
||||
MCOS->EmitIntValue(0, 4);
|
||||
// The 1 byte size of an address.
|
||||
|
@ -14,6 +14,9 @@ _a:
|
||||
# CHECK-COFF: 0x6 IMAGE_REL_I386_SECREL .debug_abbrev
|
||||
# CHECK-COFF: 0xC IMAGE_REL_I386_SECREL .debug_line
|
||||
# CHECK-COFF: }
|
||||
# CHECK-COFF: Section {{.*}} .debug_aranges {
|
||||
# CHECK-COFF: 0x6 IMAGE_REL_I386_SECREL .debug_info
|
||||
# CHECK-COFF: }
|
||||
# CHECK-COFF: ]
|
||||
|
||||
# CHECK-ELF: Relocations [
|
||||
@ -21,4 +24,7 @@ _a:
|
||||
# CHECK-ELF: 0x6 R_386_32 .debug_abbrev
|
||||
# CHECK-ELF: 0xC R_386_32 .debug_line
|
||||
# CHECK-ELF: }
|
||||
# CHECK-ELF: Section {{.*}} .rel.debug_aranges {
|
||||
# CHECK-ELF: 0x6 R_386_32 .debug_info
|
||||
# CHECK-ELF: }
|
||||
# CHECK-ELF: ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user