[llvm] r217317 - MC: correct DWARF line info for PE/COFF
Saleem Abdulrasool
compnerd at compnerd.org
Sat Sep 6 12:57:48 PDT 2014
Author: compnerd
Date: Sat Sep 6 14:57:48 2014
New Revision: 217317
URL: http://llvm.org/viewvc/llvm-project?rev=217317&view=rev
Log:
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.
Modified:
llvm/trunk/lib/MC/MCDwarf.cpp
llvm/trunk/test/DebugInfo/X86/dbg-asm.s
Modified: llvm/trunk/lib/MC/MCDwarf.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDwarf.cpp?rev=217317&r1=217316&r2=217317&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCDwarf.cpp (original)
+++ llvm/trunk/lib/MC/MCDwarf.cpp Sat Sep 6 14:57:48 2014
@@ -613,7 +613,8 @@ static void EmitGenDwarfAranges(MCStream
// 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.
Modified: llvm/trunk/test/DebugInfo/X86/dbg-asm.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dbg-asm.s?rev=217317&r1=217316&r2=217317&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/dbg-asm.s (original)
+++ llvm/trunk/test/DebugInfo/X86/dbg-asm.s Sat Sep 6 14:57:48 2014
@@ -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: ]
More information about the llvm-commits
mailing list