From 41b646c127300c6e3b83f1a0bfc49c812110ebf4 Mon Sep 17 00:00:00 2001 From: Cameron Zwarich Date: Sat, 25 May 2013 21:56:53 +0000 Subject: [PATCH] Add support for DWARF line number table entries for values in the instruction stream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182712 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MCObjectStreamer.cpp | 2 ++ test/MC/ELF/debug-line.s | 14 ++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/MC/MCObjectStreamer.cpp b/lib/MC/MCObjectStreamer.cpp index d21ce8d1a11..2d7657c5919 100644 --- a/lib/MC/MCObjectStreamer.cpp +++ b/lib/MC/MCObjectStreamer.cpp @@ -103,6 +103,8 @@ void MCObjectStreamer::EmitValueImpl(const MCExpr *Value, unsigned Size, assert(AddrSpace == 0 && "Address space must be 0!"); MCDataFragment *DF = getOrCreateDataFragment(); + MCLineEntry::Make(this, getCurrentSection().first); + // Avoid fixups when possible. int64_t AbsValue; if (AddValueSymbols(Value)->EvaluateAsAbsolute(AbsValue, getAssembler())) { diff --git a/test/MC/ELF/debug-line.s b/test/MC/ELF/debug-line.s index 75e050e9da1..6766f1042ba 100644 --- a/test/MC/ELF/debug-line.s +++ b/test/MC/ELF/debug-line.s @@ -8,17 +8,18 @@ // CHECK-NEXT: Flags [ // CHECK-NEXT: ] // CHECK-NEXT: Address: 0x0 -// CHECK-NEXT: Offset: 0x44 -// CHECK-NEXT: Size: 55 +// CHECK-NEXT: Offset: 0x48 +// CHECK-NEXT: Size: 72 // CHECK-NEXT: Link: 0 // CHECK-NEXT: Info: 0 // CHECK-NEXT: AddressAlignment: 1 // CHECK-NEXT: EntrySize: 0 // CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 33000000 02001C00 00000101 FB0E0D00 +// CHECK-NEXT: 0000: 44000000 02001C00 00000101 FB0E0D00 // CHECK-NEXT: 0010: 01010101 00000001 00000100 666F6F2E // CHECK-NEXT: 0020: 63000000 00000009 02000000 00000000 -// CHECK-NEXT: 0030: 00150204 000101 +// CHECK-NEXT: 0030: 00150205 00010100 09020000 00000000 +// CHECK-NEXT: 0040: 00001602 43000101 // CHECK-NEXT: ) // CHECK-NEXT: } @@ -28,3 +29,8 @@ .file 1 "foo.c" .loc 1 4 0 subq $8, %rsp + +// Test that .loc works with values, not just instructions. + + .loc 1 5 0 + .byte 0xc3 -- 2.11.0