mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
Write the line info to .debug_line.
llvm-svn: 117930
This commit is contained in:
parent
76910aa62f
commit
2f114f8430
@ -511,6 +511,15 @@ void MCELFStreamer::EmitInstToData(const MCInst &Inst) {
|
||||
}
|
||||
|
||||
void MCELFStreamer::Finish() {
|
||||
// FIXME: duplicated code with the MachO streamer.
|
||||
// Dump out the dwarf file & directory tables and line tables.
|
||||
if (getContext().hasDwarfFiles()) {
|
||||
const MCSection *DwarfLineSection =
|
||||
getContext().getELFSection(".debug_line", 0, 0,
|
||||
SectionKind::getDataRelLocal());
|
||||
MCDwarfFileTable::Emit(this, DwarfLineSection);
|
||||
}
|
||||
|
||||
for (std::vector<LocalCommon>::const_iterator i = LocalCommons.begin(),
|
||||
e = LocalCommons.end();
|
||||
i != e; ++i) {
|
||||
|
22
test/MC/ELF/debug-line.s
Normal file
22
test/MC/ELF/debug-line.s
Normal file
@ -0,0 +1,22 @@
|
||||
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
|
||||
|
||||
// Test that .debug_line is populated.
|
||||
|
||||
// CHECK: (('sh_name', 0x00000031) # '.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', 0x00000037)
|
||||
// CHECK-NEXT: ('sh_link', 0x00000000)
|
||||
// CHECK-NEXT: ('sh_info', 0x00000000)
|
||||
// CHECK-NEXT: ('sh_addralign', 0x00000001)
|
||||
// CHECK-NEXT: ('sh_entsize', 0x00000000)
|
||||
// CHECK-NEXT: ('_section_data', '33000000 02001c00 00000101 fb0e0d00 01010101 00000001 00000100 666f6f2e 63000000 00000009 02000000 00000000 00150204 000101')
|
||||
|
||||
.section .debug_line,"",@progbits
|
||||
.text
|
||||
|
||||
.file 1 "foo.c"
|
||||
.loc 1 4 0
|
||||
subq $8, %rsp
|
Loading…
Reference in New Issue
Block a user